---
Fuzzer filename: '/src/openvswitch/tests/oss-fuzz/json_parser_target.c'
All functions:
  Function list name: All functions
  Elements:
    - functionName:    json_destroy
      functionSourceFile: '/src/openvswitch/./include/openvswitch/json.h'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
      BBCount:         8
      ICount:          39
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - json_destroy__
      functionUses:    3
      BranchProfiles:
        - Branch String:   './include/openvswitch/json.h:200,14'
          Branch Sides:
            - BranchSide:      './include/openvswitch/json.h:200,20'
              BranchSideFuncs:
                - json_destroy__
            - BranchSide:      './include/openvswitch/json.h:200,14'
              BranchSideFuncs: []
        - Branch String:   './include/openvswitch/json.h:200,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/json.h:200,9'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/json.h:201,24'
              BranchSideFuncs:
                - json_destroy__
      Callsites:
        - Src:             './include/openvswitch/json.h:201,9'
          Dst:             json_destroy__
    - functionName:    LLVMFuzzerTestOneInput
      functionSourceFile: '/src/openvswitch/tests/oss-fuzz/json_parser_target.c'
      linkageType:     externalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - data
        - size
      BBCount:         15
      ICount:          108
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - json_destroy
        - json_from_string
        - json_to_string
        - jsonrpc_msg_from_json
        - jsonrpc_msg_to_json
      functionUses:    0
      BranchProfiles:
        - Branch String:   'tests/oss-fuzz/json_parser_target.c:13,15'
          Branch Sides:
            - BranchSide:      'tests/oss-fuzz/json_parser_target.c:13,18'
              BranchSideFuncs:
                - json_from_string
                - json_to_string
                - free
                - jsonrpc_msg_from_json
                - jsonrpc_msg_to_json
                - json_to_string
                - free
                - json_destroy
                - json_destroy
                - free
                - json_destroy
            - BranchSide:      'tests/oss-fuzz/json_parser_target.c:14,9'
              BranchSideFuncs: []
        - Branch String:   'tests/oss-fuzz/json_parser_target.c:13,9'
          Branch Sides:
            - BranchSide:      'tests/oss-fuzz/json_parser_target.c:14,9'
              BranchSideFuncs: []
            - BranchSide:      'tests/oss-fuzz/json_parser_target.c:17,54'
              BranchSideFuncs:
                - json_from_string
                - json_to_string
                - free
                - jsonrpc_msg_from_json
                - jsonrpc_msg_to_json
                - json_to_string
                - free
                - json_destroy
                - json_destroy
                - free
                - json_destroy
        - Branch String:   'tests/oss-fuzz/json_parser_target.c:18,9'
          Branch Sides:
            - BranchSide:      'tests/oss-fuzz/json_parser_target.c:19,22'
              BranchSideFuncs:
                - json_destroy
            - BranchSide:      'tests/oss-fuzz/json_parser_target.c:23,25'
              BranchSideFuncs:
                - json_to_string
                - free
                - jsonrpc_msg_from_json
                - jsonrpc_msg_to_json
                - json_to_string
                - free
                - json_destroy
                - json_destroy
                - free
        - Branch String:   'tests/oss-fuzz/json_parser_target.c:27,9'
          Branch Sides:
            - BranchSide:      'tests/oss-fuzz/json_parser_target.c:28,14'
              BranchSideFuncs:
                - free
            - BranchSide:      'tests/oss-fuzz/json_parser_target.c:32,43'
              BranchSideFuncs:
                - jsonrpc_msg_to_json
                - json_to_string
                - free
                - json_destroy
                - json_destroy
        - Branch String:   'tests/oss-fuzz/json_parser_target.c:33,9'
          Branch Sides:
            - BranchSide:      'tests/oss-fuzz/json_parser_target.c:34,22'
              BranchSideFuncs:
                - json_destroy
            - BranchSide:      'tests/oss-fuzz/json_parser_target.c:38,25'
              BranchSideFuncs:
                - json_to_string
                - free
                - json_destroy
      Callsites:
        - Src:             'tests/oss-fuzz/json_parser_target.c:17,23'
          Dst:             json_from_string
        - Src:             'tests/oss-fuzz/json_parser_target.c:19,9'
          Dst:             json_destroy
        - Src:             'tests/oss-fuzz/json_parser_target.c:23,10'
          Dst:             json_to_string
        - Src:             'tests/oss-fuzz/json_parser_target.c:26,19'
          Dst:             jsonrpc_msg_from_json
        - Src:             'tests/oss-fuzz/json_parser_target.c:32,23'
          Dst:             jsonrpc_msg_to_json
        - Src:             'tests/oss-fuzz/json_parser_target.c:34,9'
          Dst:             json_destroy
        - Src:             'tests/oss-fuzz/json_parser_target.c:38,10'
          Dst:             json_to_string
        - Src:             'tests/oss-fuzz/json_parser_target.c:39,5'
          Dst:             json_destroy
    - functionName:    json_serialize_object_member
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1830
      functionLinenumberEnd: 1844
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - i
        - node
        - s
      BBCount:         9
      ICount:          71
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ds_put_char
        - indent_line
        - json_serialize
        - json_serialize_string
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/json.c:1833,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1834,21'
              BranchSideFuncs:
                - ds_put_char
                - indent_line
                - json_serialize_string
                - ds_put_char
                - json_serialize
                - ds_put_char
            - BranchSide:      'lib/json.c:1838,27'
              BranchSideFuncs:
                - json_serialize_string
                - ds_put_char
                - json_serialize
                - ds_put_char
        - Branch String:   'lib/json.c:1840,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1840,9'
              BranchSideFuncs:
                - ds_put_char
                - json_serialize
            - BranchSide:      'lib/json.c:1841,21'
              BranchSideFuncs:
                - ds_put_char
                - json_serialize
      Callsites:
        - Src:             'lib/json.c:1834,9'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1835,9'
          Dst:             indent_line
        - Src:             'lib/json.c:1838,5'
          Dst:             json_serialize_string
        - Src:             'lib/json.c:1839,5'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1841,9'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1843,5'
          Dst:             json_serialize
    - functionName:    ds_put_char
      functionSourceFile: '/src/openvswitch/./include/openvswitch/dynamic-string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ds
        - c
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_put_char__
      functionUses:    19
      BranchProfiles:
        - Branch String:   './include/openvswitch/dynamic-string.h:95,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/dynamic-string.h:96,36'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/dynamic-string.h:99,23'
              BranchSideFuncs:
                - ds_put_char__
      Callsites:
        - Src:             './include/openvswitch/dynamic-string.h:99,9'
          Dst:             ds_put_char__
    - functionName:    indent_line
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1820
      functionLinenumberEnd: 1825
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_put_char
        - ds_put_char_multiple
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/json.c:1821,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1821,9'
              BranchSideFuncs:
                - ds_put_char
                - ds_put_char_multiple
            - BranchSide:      'lib/json.c:1822,21'
              BranchSideFuncs:
                - ds_put_char
                - ds_put_char_multiple
      Callsites:
        - Src:             'lib/json.c:1822,9'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1823,9'
          Dst:             ds_put_char_multiple
    - functionName:    json_serialize_string
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1950
      functionLinenumberEnd: 1979
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - string
        - ds
      BBCount:         23
      ICount:          139
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - ds_put_buffer
        - ds_put_char
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/json.c:1960,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:1961,13'
              BranchSideFuncs:
                - ds_put_char
                - ds_put_buffer
                - ds_put_char
                - ds_put_buffer
            - BranchSide:      'lib/json.c:1975,9'
              BranchSideFuncs:
                - ds_put_char
                - ds_put_buffer
        - Branch String:   'lib/json.c:1961,22'
          Branch Sides:
            - BranchSide:      'lib/json.c:1961,25'
              BranchSideFuncs:
                - ds_put_char
                - ds_put_buffer
                - ds_put_char
                - ds_put_buffer
            - BranchSide:      'lib/json.c:1964,17'
              BranchSideFuncs:
                - ds_put_char
                - ds_put_buffer
                - ds_put_char
                - ds_put_buffer
        - Branch String:   'lib/json.c:1961,34'
          Branch Sides:
            - BranchSide:      'lib/json.c:1961,37'
              BranchSideFuncs:
                - ds_put_char
                - ds_put_buffer
                - ds_put_char
                - ds_put_buffer
            - BranchSide:      'lib/json.c:1964,17'
              BranchSideFuncs:
                - ds_put_char
                - ds_put_buffer
                - ds_put_char
                - ds_put_buffer
        - Branch String:   'lib/json.c:1961,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:1962,18'
              BranchSideFuncs:
                - ds_put_char
                - ds_put_buffer
                - ds_put_char
                - ds_put_buffer
            - BranchSide:      'lib/json.c:1964,17'
              BranchSideFuncs:
                - ds_put_char
                - ds_put_buffer
                - ds_put_char
                - ds_put_buffer
        - Branch String:   'lib/json.c:1964,17'
          Branch Sides:
            - BranchSide:      'lib/json.c:1965,31'
              BranchSideFuncs:
                - ds_put_buffer
                - ds_put_char
                - ds_put_buffer
                - ds_put_char
            - BranchSide:      'lib/json.c:1968,21'
              BranchSideFuncs:
                - ds_put_char
                - ds_put_buffer
                - ds_put_buffer
                - ds_put_char
        - Branch String:   'lib/json.c:1970,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:0,0'
              BranchSideFuncs:
                - ds_put_char
                - ds_put_char
                - ds_put_buffer
                - ds_put_buffer
            - BranchSide:      'lib/json.c:1971,29'
              BranchSideFuncs:
                - ds_put_char
                - ds_put_char
                - ds_put_buffer
                - ds_put_buffer
        - Branch String:   'lib/json.c:1975,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1975,9'
              BranchSideFuncs:
                - ds_put_buffer
                - ds_put_char
            - BranchSide:      'lib/json.c:1976,23'
              BranchSideFuncs:
                - ds_put_buffer
                - ds_put_char
      Callsites:
        - Src:             'lib/json.c:1957,5'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1965,17'
          Dst:             ds_put_buffer
        - Src:             'lib/json.c:1971,17'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1976,9'
          Dst:             ds_put_buffer
        - Src:             'lib/json.c:1978,5'
          Dst:             ds_put_char
    - functionName:    json_serialize
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1772
      functionLinenumberEnd: 1816
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
        - s
      BBCount:         16
      ICount:          107
      EdgeCount:       30
      CyclomaticComplexity: 16
      functionsReached:
        - abort
        - ds_put_cstr
        - ds_put_format
        - json_serialize_array
        - json_serialize_object
        - json_serialize_string
        - json_serialized_object
        - json_string
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/json.c:1775,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:1777,21'
              BranchSideFuncs:
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1781,21'
              BranchSideFuncs:
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1785,21'
              BranchSideFuncs:
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1789,31'
              BranchSideFuncs:
                - json_serialize_object
            - BranchSide:      'lib/json.c:1793,30'
              BranchSideFuncs:
                - json_serialize_array
            - BranchSide:      'lib/json.c:1797,23'
              BranchSideFuncs:
                - ds_put_format
            - BranchSide:      'lib/json.c:1801,23'
              BranchSideFuncs:
                - ds_put_format
            - BranchSide:      'lib/json.c:1805,43'
              BranchSideFuncs:
                - json_string
                - json_serialize_string
            - BranchSide:      'lib/json.c:1809,21'
              BranchSideFuncs:
                - json_serialized_object
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1812,5'
              BranchSideFuncs:
                - abort
            - BranchSide:      'lib/json.c:1814,9'
              BranchSideFuncs:
                - abort
      Callsites:
        - Src:             'lib/json.c:1777,9'
          Dst:             ds_put_cstr
        - Src:             'lib/json.c:1781,9'
          Dst:             ds_put_cstr
        - Src:             'lib/json.c:1785,9'
          Dst:             ds_put_cstr
        - Src:             'lib/json.c:1789,9'
          Dst:             json_serialize_object
        - Src:             'lib/json.c:1793,9'
          Dst:             json_serialize_array
        - Src:             'lib/json.c:1797,9'
          Dst:             ds_put_format
        - Src:             'lib/json.c:1801,9'
          Dst:             ds_put_format
        - Src:             'lib/json.c:1805,31'
          Dst:             json_string
        - Src:             'lib/json.c:1805,9'
          Dst:             json_serialize_string
        - Src:             'lib/json.c:1809,25'
          Dst:             json_serialized_object
        - Src:             'lib/json.c:1809,9'
          Dst:             ds_put_cstr
        - Src:             'lib/json.c:1814,9'
          Dst:             abort
    - functionName:    json_serialize_object
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1848
      functionLinenumberEnd: 1882
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - object
        - s
      BBCount:         20
      ICount:          153
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - cooperative_multitasking_yield_at
        - ds_put_char
        - hmap_first
        - hmap_next
        - indent_line
        - json_serialize_object_member
        - shash_count
        - shash_sort
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/json.c:1856,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1857,9'
              BranchSideFuncs:
                - cooperative_multitasking_yield_at
                - hmap_first
                - ds_put_char
                - json_serialize_object_member
                - hmap_next
                - shash_sort
                - shash_count
                - free
                - json_serialize_object_member
            - BranchSide:      'lib/json.c:1860,9'
              BranchSideFuncs:
                - hmap_first
                - ds_put_char
                - json_serialize_object_member
                - hmap_next
                - shash_sort
                - shash_count
                - free
                - json_serialize_object_member
        - Branch String:   'lib/json.c:1860,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1864,28'
              BranchSideFuncs:
                - shash_sort
                - shash_count
                - free
                - ds_put_char
                - json_serialize_object_member
            - BranchSide:      'lib/json.c:1874,11'
              BranchSideFuncs:
                - hmap_first
                - ds_put_char
                - json_serialize_object_member
                - hmap_next
        - Branch String:   'lib/json.c:1866,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1867,42'
              BranchSideFuncs:
                - json_serialize_object_member
                - free
                - ds_put_char
            - BranchSide:      'lib/json.c:1869,14'
              BranchSideFuncs:
                - free
                - ds_put_char
        - Branch String:   'lib/json.c:1875,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1875,9'
              BranchSideFuncs:
                - ds_put_char
                - json_serialize_object_member
                - hmap_next
            - BranchSide:      'lib/json.c:1875,9'
              BranchSideFuncs:
                - ds_put_char
                - json_serialize_object_member
                - hmap_next
        - Branch String:   'lib/json.c:1875,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:0,0'
              BranchSideFuncs:
                - json_serialize_object_member
                - hmap_next
                - ds_put_char
            - BranchSide:      'lib/json.c:1876,43'
              BranchSideFuncs:
                - json_serialize_object_member
                - hmap_next
                - ds_put_char
      Callsites:
        - Src:             'lib/json.c:1851,5'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1854,5'
          Dst:             indent_line
        - Src:             'lib/json.c:1857,9'
          Dst:             cooperative_multitasking_yield_at
        - Src:             'lib/json.c:1864,17'
          Dst:             shash_sort
        - Src:             'lib/json.c:1865,13'
          Dst:             shash_count
        - Src:             'lib/json.c:1867,13'
          Dst:             json_serialize_object_member
        - Src:             'lib/json.c:1875,9'
          Dst:             hmap_first
        - Src:             'lib/json.c:1876,13'
          Dst:             json_serialize_object_member
        - Src:             'lib/json.c:1875,9'
          Dst:             hmap_next
        - Src:             'lib/json.c:1880,5'
          Dst:             ds_put_char
    - functionName:    json_serialize_array
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1886
      functionLinenumberEnd: 1911
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
        - s
      BBCount:         16
      ICount:          110
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - cooperative_multitasking_yield_at
        - ds_put_char
        - indent_line
        - json_array_at
        - json_array_size
        - json_serialize
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/json.c:1893,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1894,9'
              BranchSideFuncs:
                - cooperative_multitasking_yield_at
                - ds_put_char
                - indent_line
                - json_array_at
                - json_serialize
                - ds_put_char
                - indent_line
            - BranchSide:      'lib/json.c:1897,9'
              BranchSideFuncs:
                - ds_put_char
                - indent_line
                - json_array_at
                - json_serialize
                - ds_put_char
                - indent_line
        - Branch String:   'lib/json.c:1897,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1897,9'
              BranchSideFuncs:
                - indent_line
                - ds_put_char
                - json_array_at
                - json_serialize
                - ds_put_char
                - indent_line
            - BranchSide:      'lib/json.c:1898,21'
              BranchSideFuncs:
                - indent_line
                - ds_put_char
                - json_array_at
                - json_serialize
                - ds_put_char
                - indent_line
        - Branch String:   'lib/json.c:1900,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1901,17'
              BranchSideFuncs:
                - json_array_at
                - json_serialize
                - ds_put_char
                - ds_put_char
                - indent_line
            - BranchSide:      'lib/json.c:1907,5'
              BranchSideFuncs:
                - ds_put_char
        - Branch String:   'lib/json.c:1901,17'
          Branch Sides:
            - BranchSide:      'lib/json.c:1902,29'
              BranchSideFuncs:
                - ds_put_char
                - indent_line
                - json_array_at
                - json_serialize
                - ds_put_char
            - BranchSide:      'lib/json.c:1905,42'
              BranchSideFuncs:
                - json_array_at
                - json_serialize
                - ds_put_char
                - ds_put_char
                - indent_line
      Callsites:
        - Src:             'lib/json.c:1887,19'
          Dst:             json_array_size
        - Src:             'lib/json.c:1890,5'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1894,9'
          Dst:             cooperative_multitasking_yield_at
        - Src:             'lib/json.c:1898,9'
          Dst:             indent_line
        - Src:             'lib/json.c:1902,17'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1903,17'
          Dst:             indent_line
        - Src:             'lib/json.c:1905,28'
          Dst:             json_array_at
        - Src:             'lib/json.c:1905,13'
          Dst:             json_serialize
        - Src:             'lib/json.c:1910,5'
          Dst:             ds_put_char
    - functionName:    json_string
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:
        - Branch String:   'lib/json.c:455,12'
          Branch Sides:
            - BranchSide:      'lib/json.c:456,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:456,30'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    json_serialized_object
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 463
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    abort
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    39
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_array_size
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
      BBCount:         4
      ICount:          40
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:
        - Branch String:   'lib/json.c:470,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:471,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:473,12'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    json_array_at
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 492
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - json
        - index
      BBCount:         8
      ICount:          73
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    15
      BranchProfiles:
        - Branch String:   'lib/json.c:481,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:482,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:488,9'
              BranchSideFuncs: []
        - Branch String:   'lib/json.c:482,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:483,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:485,16'
              BranchSideFuncs: []
        - Branch String:   'lib/json.c:488,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:489,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:491,12'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    hmap_first
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next__
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:417,12'
          Dst:             hmap_next__
    - functionName:    hmap_next
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_next__
      functionUses:    4
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:430,13'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:431,15'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:432,27'
              BranchSideFuncs:
                - hmap_next__
      Callsites:
        - Src:             './include/openvswitch/hmap.h:432,15'
          Dst:             hmap_next__
    - functionName:    hmap_next__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - start
      BBCount:         8
      ICount:          55
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:403,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:404,34'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:409,5'
              BranchSideFuncs: []
        - Branch String:   './include/openvswitch/hmap.h:405,13'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:406,20'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:408,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    json_parser_top
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1468
      functionLinenumberEnd: 1469
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_parser_put_value
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1474
      functionLinenumberEnd: 1484
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
        - value
      BBCount:         9
      ICount:          68
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - abort
        - json_array_add
        - json_object_put_nocopy
        - json_parser_top
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/json.c:1476,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1477,32'
              BranchSideFuncs:
                - json_object_put_nocopy
            - BranchSide:      'lib/json.c:1479,16'
              BranchSideFuncs:
                - abort
                - json_array_add
        - Branch String:   'lib/json.c:1479,16'
          Branch Sides:
            - BranchSide:      'lib/json.c:1480,24'
              BranchSideFuncs:
                - json_array_add
            - BranchSide:      'lib/json.c:1482,9'
              BranchSideFuncs:
                - abort
      Callsites:
        - Src:             'lib/json.c:1475,37'
          Dst:             json_parser_top
        - Src:             'lib/json.c:1477,9'
          Dst:             json_object_put_nocopy
        - Src:             'lib/json.c:1480,9'
          Dst:             json_array_add
        - Src:             'lib/json.c:1482,9'
          Dst:             abort
    - functionName:    json_object_put_nocopy
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
        - name
        - value
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_destroy
        - shash_replace_nocopy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:425,18'
          Dst:             shash_replace_nocopy
        - Src:             'lib/json.c:425,5'
          Dst:             json_destroy
    - functionName:    json_array_add
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - array_
        - element
      BBCount:         20
      ICount:          161
      EdgeCount:       20
      CyclomaticComplexity: 2
      functionsReached:
        - abort
        - x2nrealloc
        - xmalloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/json.c:239,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:241,14'
              BranchSideFuncs:
                - x2nrealloc
            - BranchSide:      'lib/json.c:250,71'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:250,71'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:255,34'
              BranchSideFuncs:
                - xmalloc
            - BranchSide:      'lib/json.c:267,5'
              BranchSideFuncs:
                - abort
            - BranchSide:      'lib/json.c:267,5'
              BranchSideFuncs:
                - abort
            - BranchSide:      'lib/json.c:269,9'
              BranchSideFuncs:
                - abort
        - Branch String:   'lib/json.c:241,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:242,13'
              BranchSideFuncs:
                - x2nrealloc
            - BranchSide:      'lib/json.c:246,9'
              BranchSideFuncs:
                - x2nrealloc
        - Branch String:   'lib/json.c:273,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:274,38'
              BranchSideFuncs:
                - x2nrealloc
            - BranchSide:      'lib/json.c:277,38'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/json.c:255,34'
          Dst:             xmalloc
        - Src:             'lib/json.c:269,9'
          Dst:             abort
        - Src:             'lib/json.c:274,27'
          Dst:             x2nrealloc
    - functionName:    json_destroy
      functionSourceFile: '/src/openvswitch/./include/openvswitch/json.h'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
      BBCount:         8
      ICount:          39
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - json_destroy__
      functionUses:    7
      BranchProfiles:
        - Branch String:   './include/openvswitch/json.h:200,14'
          Branch Sides:
            - BranchSide:      './include/openvswitch/json.h:200,20'
              BranchSideFuncs:
                - json_destroy__
            - BranchSide:      './include/openvswitch/json.h:200,14'
              BranchSideFuncs: []
        - Branch String:   './include/openvswitch/json.h:200,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/json.h:200,9'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/json.h:201,24'
              BranchSideFuncs:
                - json_destroy__
      Callsites:
        - Src:             './include/openvswitch/json.h:201,9'
          Dst:             json_destroy__
    - functionName:    json_destroy__
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 528
      functionLinenumberEnd: 559
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - json
        - yield
      BBCount:         19
      ICount:          101
      EdgeCount:       37
      CyclomaticComplexity: 20
      functionsReached:
        - abort
        - json_destroy_array
        - json_destroy_object
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/json.c:529,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:529,5'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/json.c:531,29'
              BranchSideFuncs:
                - json_destroy_object
                - free
            - BranchSide:      'lib/json.c:535,28'
              BranchSideFuncs:
                - json_destroy_array
                - free
            - BranchSide:      'lib/json.c:539,13'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'lib/json.c:545,14'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'lib/json.c:553,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/json.c:553,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/json.c:553,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/json.c:553,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/json.c:553,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/json.c:556,9'
              BranchSideFuncs:
                - abort
        - Branch String:   'lib/json.c:539,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:540,18'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'lib/json.c:542,9'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'lib/json.c:531,9'
          Dst:             json_destroy_object
        - Src:             'lib/json.c:535,9'
          Dst:             json_destroy_array
        - Src:             'lib/json.c:556,9'
          Dst:             abort
    - functionName:    json_destroy_object
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 563
      functionLinenumberEnd: 582
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - object
        - yield
      BBCount:         16
      ICount:          104
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - cooperative_multitasking_yield_at
        - hmap_first
        - hmap_next
        - json_destroy
        - json_destroy_with_yield
        - shash_delete
        - shash_destroy
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/json.c:566,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:567,9'
              BranchSideFuncs:
                - cooperative_multitasking_yield_at
                - hmap_first
                - shash_destroy
                - free
                - json_destroy.6
                - shash_delete
                - json_destroy_with_yield
                - hmap_next
            - BranchSide:      'lib/json.c:570,5'
              BranchSideFuncs:
                - hmap_first
                - shash_destroy
                - free
                - json_destroy.6
                - shash_delete
                - json_destroy_with_yield
                - hmap_next
        - Branch String:   'lib/json.c:570,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:570,5'
              BranchSideFuncs:
                - hmap_next
                - shash_destroy
                - free
                - json_destroy.6
                - shash_delete
                - json_destroy_with_yield
            - BranchSide:      'lib/json.c:570,5'
              BranchSideFuncs:
                - shash_destroy
                - free
                - json_destroy.6
                - shash_delete
                - hmap_next
                - json_destroy_with_yield
        - Branch String:   'lib/json.c:570,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:571,30'
              BranchSideFuncs:
                - json_destroy.6
                - shash_delete
                - shash_destroy
                - free
                - hmap_next
                - json_destroy_with_yield
            - BranchSide:      'lib/json.c:580,19'
              BranchSideFuncs:
                - shash_destroy
                - free
        - Branch String:   'lib/json.c:573,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:574,37'
              BranchSideFuncs:
                - json_destroy_with_yield
                - shash_delete
                - shash_destroy
                - free
                - json_destroy.6
                - hmap_next
            - BranchSide:      'lib/json.c:576,26'
              BranchSideFuncs:
                - json_destroy.6
                - shash_delete
                - shash_destroy
                - free
                - json_destroy_with_yield
                - hmap_next
      Callsites:
        - Src:             'lib/json.c:567,9'
          Dst:             cooperative_multitasking_yield_at
        - Src:             'lib/json.c:570,5'
          Dst:             hmap_first
        - Src:             'lib/json.c:570,5'
          Dst:             hmap_next
        - Src:             'lib/json.c:574,13'
          Dst:             json_destroy_with_yield
        - Src:             'lib/json.c:576,13'
          Dst:             json_destroy
        - Src:             'lib/json.c:578,9'
          Dst:             shash_delete
        - Src:             'lib/json.c:580,5'
          Dst:             shash_destroy
    - functionName:    json_destroy_array
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 586
      functionLinenumberEnd: 604
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - json
        - yield
      BBCount:         16
      ICount:          90
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - cooperative_multitasking_yield_at
        - json_array_at
        - json_array_size
        - json_destroy
        - json_destroy_with_yield
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/json.c:589,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:590,9'
              BranchSideFuncs:
                - cooperative_multitasking_yield_at
                - free
                - json_array_at
                - json_destroy.6
                - json_array_at
                - json_destroy_with_yield
            - BranchSide:      'lib/json.c:593,12'
              BranchSideFuncs:
                - free
                - json_array_at
                - json_destroy.6
                - json_array_at
                - json_destroy_with_yield
        - Branch String:   'lib/json.c:593,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:594,13'
              BranchSideFuncs:
                - json_array_at
                - json_destroy.6
                - free
                - json_array_at
                - json_destroy_with_yield
            - BranchSide:      'lib/json.c:601,9'
              BranchSideFuncs:
                - free
        - Branch String:   'lib/json.c:594,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:596,17'
              BranchSideFuncs:
                - json_array_at
                - json_destroy_with_yield
                - free
                - json_array_at
                - json_destroy.6
            - BranchSide:      'lib/json.c:598,26'
              BranchSideFuncs:
                - json_array_at
                - json_destroy.6
                - free
                - json_array_at
                - json_destroy_with_yield
        - Branch String:   'lib/json.c:601,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:601,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/json.c:602,14'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'lib/json.c:587,19'
          Dst:             json_array_size
        - Src:             'lib/json.c:590,9'
          Dst:             cooperative_multitasking_yield_at
        - Src:             'lib/json.c:596,17'
          Dst:             json_array_at
        - Src:             'lib/json.c:595,13'
          Dst:             json_destroy_with_yield
        - Src:             'lib/json.c:598,26'
          Dst:             json_array_at
        - Src:             'lib/json.c:598,13'
          Dst:             json_destroy
    - functionName:    json_destroy_with_yield
      functionSourceFile: '/src/openvswitch/lib/json.h'
      linkageType:     InternalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
      BBCount:         8
      ICount:          39
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - json_destroy__
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/json.h:25,14'
          Branch Sides:
            - BranchSide:      'lib/json.h:25,20'
              BranchSideFuncs:
                - json_destroy__
            - BranchSide:      'lib/json.h:25,14'
              BranchSideFuncs: []
        - Branch String:   'lib/json.h:25,9'
          Branch Sides:
            - BranchSide:      'lib/json.h:25,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.h:26,24'
              BranchSideFuncs:
                - json_destroy__
      Callsites:
        - Src:             'lib/json.h:26,9'
          Dst:             json_destroy__
    - functionName:    json_parser_push
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1489
      functionLinenumberEnd: 1510
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - p
        - new_json
        - new_state
      BBCount:         12
      ICount:          98
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - json_destroy
        - json_error
        - json_parser_put_value
        - x2nrealloc
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/json.c:1490,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1493,13'
              BranchSideFuncs:
                - json_parser_put_value
                - x2nrealloc
            - BranchSide:      'lib/json.c:1506,22'
              BranchSideFuncs:
                - json_destroy.6
                - json_error
        - Branch String:   'lib/json.c:1493,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:1494,35'
              BranchSideFuncs:
                - x2nrealloc
                - json_parser_put_value
            - BranchSide:      'lib/json.c:1498,13'
              BranchSideFuncs:
                - json_parser_put_value
        - Branch String:   'lib/json.c:1498,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:1499,35'
              BranchSideFuncs:
                - json_parser_put_value
            - BranchSide:      'lib/json.c:1502,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/json.c:1494,24'
          Dst:             x2nrealloc
        - Src:             'lib/json.c:1499,13'
          Dst:             json_parser_put_value
        - Src:             'lib/json.c:1506,9'
          Dst:             json_destroy
        - Src:             'lib/json.c:1507,9'
          Dst:             json_error
    - functionName:    json_error
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1701
      functionLinenumberEnd: 1717
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
        - format
      BBCount:         6
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_init
        - ds_put_format
        - ds_put_format_valist
        - ds_steal_cstr
      functionUses:    23
      BranchProfiles:
        - Branch String:   'lib/json.c:1702,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1702,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:1706,9'
              BranchSideFuncs:
                - ds_init
                - ds_put_format
                - ds_put_format_valist
                - ds_steal_cstr
      Callsites:
        - Src:             'lib/json.c:1706,9'
          Dst:             ds_init
        - Src:             'lib/json.c:1707,9'
          Dst:             ds_put_format
        - Src:             'lib/json.c:1710,9'
          Dst:             ds_put_format_valist
        - Src:             'lib/json.c:1713,20'
          Dst:             ds_steal_cstr
    - functionName:    json_parse_value
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1527
      functionLinenumberEnd: 1575
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - p
        - token
        - next_state
      BBCount:         21
      ICount:          121
      EdgeCount:       41
      CyclomaticComplexity: 22
      functionsReached:
        - json_boolean_create
        - json_error
        - json_integer_create
        - json_null_create
        - json_parser_push_array
        - json_parser_push_object
        - json_parser_put_value
        - json_real_create
        - json_string_create
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/json.c:1530,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:1532,17'
              BranchSideFuncs:
                - json_boolean_create
                - json_parser_put_value
            - BranchSide:      'lib/json.c:1536,17'
              BranchSideFuncs:
                - json_null_create
                - json_parser_put_value
            - BranchSide:      'lib/json.c:1540,17'
              BranchSideFuncs:
                - json_boolean_create
                - json_parser_put_value
            - BranchSide:      'lib/json.c:1544,33'
              BranchSideFuncs:
                - json_parser_push_object
            - BranchSide:      'lib/json.c:1548,32'
              BranchSideFuncs:
                - json_parser_push_array
            - BranchSide:      'lib/json.c:1552,37'
              BranchSideFuncs:
                - json_integer_create
                - json_parser_put_value
            - BranchSide:      'lib/json.c:1556,34'
              BranchSideFuncs:
                - json_real_create
                - json_parser_put_value
            - BranchSide:      'lib/json.c:1560,36'
              BranchSideFuncs:
                - json_string_create
                - json_parser_put_value
            - BranchSide:      'lib/json.c:1567,5'
              BranchSideFuncs:
                - json_error
            - BranchSide:      'lib/json.c:1567,5'
              BranchSideFuncs:
                - json_error
            - BranchSide:      'lib/json.c:1567,5'
              BranchSideFuncs:
                - json_error
            - BranchSide:      'lib/json.c:1567,5'
              BranchSideFuncs:
                - json_error
            - BranchSide:      'lib/json.c:1567,5'
              BranchSideFuncs:
                - json_error
            - BranchSide:      'lib/json.c:1569,20'
              BranchSideFuncs:
                - json_error
      Callsites:
        - Src:             'lib/json.c:1532,17'
          Dst:             json_boolean_create
        - Src:             'lib/json.c:1536,17'
          Dst:             json_null_create
        - Src:             'lib/json.c:1540,17'
          Dst:             json_boolean_create
        - Src:             'lib/json.c:1544,9'
          Dst:             json_parser_push_object
        - Src:             'lib/json.c:1548,9'
          Dst:             json_parser_push_array
        - Src:             'lib/json.c:1552,17'
          Dst:             json_integer_create
        - Src:             'lib/json.c:1556,17'
          Dst:             json_real_create
        - Src:             'lib/json.c:1560,17'
          Dst:             json_string_create
        - Src:             'lib/json.c:1569,9'
          Dst:             json_error
        - Src:             'lib/json.c:1573,5'
          Dst:             json_parser_put_value
    - functionName:    json_boolean_create
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - b
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:175,12'
          Dst:             json_create
    - functionName:    json_null_create
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/json.c:169,12'
          Branch Sides:
            - BranchSide:      'lib/json.c:169,12'
              BranchSideFuncs:
                - json_create
            - BranchSide:      'lib/json.c:169,12'
              BranchSideFuncs:
                - json_create
      Callsites:
        - Src:             'lib/json.c:169,12'
          Dst:             json_create
    - functionName:    json_parser_push_object
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1514
      functionLinenumberEnd: 1516
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_create
        - json_parser_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1515,25'
          Dst:             json_object_create
        - Src:             'lib/json.c:1515,5'
          Dst:             json_parser_push
    - functionName:    json_parser_push_array
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1520
      functionLinenumberEnd: 1522
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_array_create_empty
        - json_parser_push
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1521,25'
          Dst:             json_array_create_empty
        - Src:             'lib/json.c:1521,5'
          Dst:             json_parser_push
    - functionName:    json_integer_create
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - integer
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:403,25'
          Dst:             json_create
    - functionName:    json_real_create
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 410
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - double
      constantsTouched: []
      argNames:
        - real
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:411,25'
          Dst:             json_create
    - functionName:    json_string_create
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         6
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_create
        - strlen
        - xmemdup0
      functionUses:    7
      BranchProfiles:
        - Branch String:   'lib/json.c:193,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:194,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:198,9'
              BranchSideFuncs:
                - xmemdup0
      Callsites:
        - Src:             'lib/json.c:190,25'
          Dst:             json_create
        - Src:             'lib/json.c:191,21'
          Dst:             strlen
        - Src:             'lib/json.c:199,25'
          Dst:             xmemdup0
    - functionName:    json_create
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1692
      functionLinenumberEnd: 1696
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - type
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xmalloc
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1693,25'
          Dst:             xmalloc
    - functionName:    strlen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    41
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_array_create_empty
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/json.c:228,25'
          Branch Sides:
            - BranchSide:      'lib/json.c:228,18'
              BranchSideFuncs:
                - json_create
            - BranchSide:      'lib/json.c:228,25'
              BranchSideFuncs:
                - json_create
      Callsites:
        - Src:             'lib/json.c:228,25'
          Dst:             json_create
    - functionName:    json_object_create
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
        - shash_init
        - xmalloc
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/json.c:394,25'
          Branch Sides:
            - BranchSide:      'lib/json.c:394,18'
              BranchSideFuncs:
                - json_create
                - xmalloc
                - shash_init
            - BranchSide:      'lib/json.c:394,25'
              BranchSideFuncs:
                - json_create
                - xmalloc
                - shash_init
      Callsites:
        - Src:             'lib/json.c:394,25'
          Dst:             json_create
        - Src:             'lib/json.c:395,20'
          Dst:             xmalloc
        - Src:             'lib/json.c:396,5'
          Dst:             shash_init
    - functionName:    json_parser_pop
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1579
      functionLinenumberEnd: 1605
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         18
      ICount:          112
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - abort
        - json_array_trim
        - json_parser_top
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/json.c:1584,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1585,25'
              BranchSideFuncs:
                - json_array_trim
                - json_parser_top
                - abort
            - BranchSide:      'lib/json.c:1589,9'
              BranchSideFuncs:
                - json_parser_top
                - abort
        - Branch String:   'lib/json.c:1589,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1590,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:1595,9'
              BranchSideFuncs:
                - json_parser_top
                - abort
        - Branch String:   'lib/json.c:1591,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:1592,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:1594,5'
              BranchSideFuncs: []
        - Branch String:   'lib/json.c:1597,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:1598,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:1599,20'
              BranchSideFuncs:
                - abort
        - Branch String:   'lib/json.c:1599,20'
          Branch Sides:
            - BranchSide:      'lib/json.c:1600,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:1602,13'
              BranchSideFuncs:
                - abort
      Callsites:
        - Src:             'lib/json.c:1583,12'
          Dst:             json_parser_top
        - Src:             'lib/json.c:1585,9'
          Dst:             json_array_trim
        - Src:             'lib/json.c:1596,16'
          Dst:             json_parser_top
        - Src:             'lib/json.c:1602,13'
          Dst:             abort
    - functionName:    json_array_trim
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - array_
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - xrealloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/json.c:317,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:318,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:321,33'
              BranchSideFuncs:
                - xrealloc
        - Branch String:   'lib/json.c:322,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:322,9'
              BranchSideFuncs:
                - xrealloc
            - BranchSide:      'lib/json.c:323,28'
              BranchSideFuncs:
                - xrealloc
      Callsites:
        - Src:             'lib/json.c:324,27'
          Dst:             xrealloc
    - functionName:    json_parser_input_string
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1157
      functionLinenumberEnd: 1163
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
        - s
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_parser_input
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1162,5'
          Dst:             json_parser_input
    - functionName:    json_parser_input
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1609
      functionLinenumberEnd: 1688
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
        - token
      BBCount:         45
      ICount:          236
      EdgeCount:       53
      CyclomaticComplexity: 10
      functionsReached:
        - abort
        - ds_clear
        - json_error
        - json_parse_value
        - json_parser_pop
        - json_parser_push_array
        - json_parser_push_object
        - xstrdup
      functionUses:    6
      BranchProfiles:
        - Branch String:   'lib/json.c:1610,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:1612,13'
              BranchSideFuncs:
                - json_error
                - ds_clear
                - json_parser_push_array
                - json_parser_push_object
            - BranchSide:      'lib/json.c:1622,20'
              BranchSideFuncs:
                - json_error
                - ds_clear
            - BranchSide:      'lib/json.c:1626,13'
              BranchSideFuncs:
                - json_error
                - ds_clear
                - xstrdup
                - json_parser_pop
            - BranchSide:      'lib/json.c:1632,13'
              BranchSideFuncs:
                - json_error
                - ds_clear
                - xstrdup
            - BranchSide:      'lib/json.c:1641,13'
              BranchSideFuncs:
                - json_error
                - ds_clear
            - BranchSide:      'lib/json.c:1649,26'
              BranchSideFuncs:
                - json_parse_value
                - ds_clear
            - BranchSide:      'lib/json.c:1653,13'
              BranchSideFuncs:
                - json_error
                - ds_clear
                - json_parser_pop
            - BranchSide:      'lib/json.c:1663,13'
              BranchSideFuncs:
                - json_parse_value
                - ds_clear
                - json_parser_pop
            - BranchSide:      'lib/json.c:1669,26'
              BranchSideFuncs:
                - json_parse_value
                - ds_clear
            - BranchSide:      'lib/json.c:1673,13'
              BranchSideFuncs:
                - json_error
                - ds_clear
                - json_parser_pop
            - BranchSide:      'lib/json.c:1683,9'
              BranchSideFuncs:
                - abort
        - Branch String:   'lib/json.c:1612,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:1613,37'
              BranchSideFuncs:
                - json_parser_push_object
                - ds_clear
            - BranchSide:      'lib/json.c:1614,20'
              BranchSideFuncs:
                - json_error
                - ds_clear
                - json_parser_push_array
        - Branch String:   'lib/json.c:1614,20'
          Branch Sides:
            - BranchSide:      'lib/json.c:1615,36'
              BranchSideFuncs:
                - json_parser_push_array
                - ds_clear
            - BranchSide:      'lib/json.c:1617,24'
              BranchSideFuncs:
                - json_error
                - ds_clear
        - Branch String:   'lib/json.c:1626,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:1626,28'
              BranchSideFuncs:
                - json_parser_pop
                - ds_clear
            - BranchSide:      'lib/json.c:1627,29'
              BranchSideFuncs:
                - json_parser_pop
                - ds_clear
        - Branch String:   'lib/json.c:1632,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:1633,38'
              BranchSideFuncs:
                - xstrdup
                - ds_clear
            - BranchSide:      'lib/json.c:1636,24'
              BranchSideFuncs:
                - json_error
                - ds_clear
        - Branch String:   'lib/json.c:1641,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:1642,13'
              BranchSideFuncs:
                - ds_clear
            - BranchSide:      'lib/json.c:1644,24'
              BranchSideFuncs:
                - json_error
                - ds_clear
        - Branch String:   'lib/json.c:1653,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:1654,13'
              BranchSideFuncs:
                - ds_clear
            - BranchSide:      'lib/json.c:1655,20'
              BranchSideFuncs:
                - json_error
                - ds_clear
                - json_parser_pop
        - Branch String:   'lib/json.c:1655,20'
          Branch Sides:
            - BranchSide:      'lib/json.c:1656,29'
              BranchSideFuncs:
                - json_parser_pop
                - ds_clear
            - BranchSide:      'lib/json.c:1658,24'
              BranchSideFuncs:
                - json_error
                - ds_clear
        - Branch String:   'lib/json.c:1663,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:1663,28'
              BranchSideFuncs:
                - json_parser_pop
                - ds_clear
            - BranchSide:      'lib/json.c:1664,29'
              BranchSideFuncs:
                - json_parser_pop
                - ds_clear
        - Branch String:   'lib/json.c:1673,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:1674,13'
              BranchSideFuncs:
                - ds_clear
            - BranchSide:      'lib/json.c:1675,20'
              BranchSideFuncs:
                - json_error
                - ds_clear
                - json_parser_pop
        - Branch String:   'lib/json.c:1675,20'
          Branch Sides:
            - BranchSide:      'lib/json.c:1676,29'
              BranchSideFuncs:
                - json_parser_pop
                - ds_clear
            - BranchSide:      'lib/json.c:1678,24'
              BranchSideFuncs:
                - json_error
                - ds_clear
      Callsites:
        - Src:             'lib/json.c:1613,13'
          Dst:             json_parser_push_object
        - Src:             'lib/json.c:1615,13'
          Dst:             json_parser_push_array
        - Src:             'lib/json.c:1617,13'
          Dst:             json_error
        - Src:             'lib/json.c:1622,9'
          Dst:             json_error
        - Src:             'lib/json.c:1627,13'
          Dst:             json_parser_pop
        - Src:             'lib/json.c:1633,30'
          Dst:             xstrdup
        - Src:             'lib/json.c:1636,13'
          Dst:             json_error
        - Src:             'lib/json.c:1644,13'
          Dst:             json_error
        - Src:             'lib/json.c:1649,9'
          Dst:             json_parse_value
        - Src:             'lib/json.c:1656,13'
          Dst:             json_parser_pop
        - Src:             'lib/json.c:1658,13'
          Dst:             json_error
        - Src:             'lib/json.c:1664,13'
          Dst:             json_parser_pop
        - Src:             'lib/json.c:1669,9'
          Dst:             json_parse_value
        - Src:             'lib/json.c:1676,13'
          Dst:             json_parser_pop
        - Src:             'lib/json.c:1678,13'
          Dst:             json_error
        - Src:             'lib/json.c:1683,9'
          Dst:             abort
        - Src:             'lib/json.c:1687,5'
          Dst:             ds_clear
    - functionName:    uc_is_trailing_surrogate
      functionSourceFile: '/src/openvswitch/lib/unicode.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - c
      BBCount:         4
      ICount:          23
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/unicode.h:42,24'
          Branch Sides:
            - BranchSide:      'lib/unicode.h:42,27'
              BranchSideFuncs: []
            - BranchSide:      'lib/unicode.h:42,24'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    uc_is_leading_surrogate
      functionSourceFile: '/src/openvswitch/lib/unicode.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - c
      BBCount:         4
      ICount:          23
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/unicode.h:35,24'
          Branch Sides:
            - BranchSide:      'lib/unicode.h:35,27'
              BranchSideFuncs: []
            - BranchSide:      'lib/unicode.h:35,24'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    json_lex_4hex
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1008
      functionLinenumberEnd: 1025
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cp
        - end
        - valuep
      BBCount:         10
      ICount:          65
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - hexits_value
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/json.c:1012,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1013,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:1016,26'
              BranchSideFuncs:
                - hexits_value
        - Branch String:   'lib/json.c:1017,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1018,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:1020,10'
              BranchSideFuncs: []
        - Branch String:   'lib/json.c:1020,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1021,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:1023,15'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/json.c:1016,13'
          Dst:             hexits_value
    - functionName:    hash_rot
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - x
        - k
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mhash_add__
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_rot
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/hash.h:66,9'
          Branch Sides:
            - BranchSide:      'lib/hash.h:67,16'
              BranchSideFuncs:
                - hash_rot
            - BranchSide:      'lib/hash.h:70,10'
              BranchSideFuncs:
                - hash_rot
      Callsites:
        - Src:             'lib/hash.h:71,12'
          Dst:             hash_rot
    - functionName:    mhash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_rot
        - mhash_add__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:78,12'
          Dst:             mhash_add__
        - Src:             'lib/hash.h:79,12'
          Dst:             hash_rot
    - functionName:    mhash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - hash
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:109,12'
          Dst:             mhash_add
    - functionName:    hash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - final
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:119,12'
          Dst:             mhash_finish
    - functionName:    hash_2words
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - x
        - y
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add
        - hash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:154,33'
          Dst:             hash_add
        - Src:             'lib/hash.h:154,24'
          Dst:             hash_add
        - Src:             'lib/hash.h:154,12'
          Dst:             hash_finish
    - functionName:    json_parser_abort
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1453
      functionLinenumberEnd: 1464
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ds_destroy
        - json_destroy
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/json.c:1454,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1454,9'
              BranchSideFuncs:
                - ds_destroy
                - free
                - free
                - free
                - free
                - json_destroy.6
            - BranchSide:      'lib/json.c:1455,21'
              BranchSideFuncs:
                - ds_destroy
                - free
                - free
                - free
                - free
                - json_destroy.6
        - Branch String:   'lib/json.c:1456,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:1457,26'
              BranchSideFuncs:
                - json_destroy.6
                - free
                - free
                - free
                - free
            - BranchSide:      'lib/json.c:1459,14'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
      Callsites:
        - Src:             'lib/json.c:1455,9'
          Dst:             ds_destroy
        - Src:             'lib/json.c:1457,13'
          Dst:             json_destroy
    - functionName:    json_parser_is_done
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1407
      functionLinenumberEnd: 1408
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_lex_string
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1167
      functionLinenumberEnd: 1182
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ds_cstr
        - json_error
        - json_parser_input_string
        - json_string_unescape
        - strchr
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/json.c:1169,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1170,34'
              BranchSideFuncs:
                - strlen
                - json_string_unescape
                - json_error
                - free
                - json_parser_input_string
            - BranchSide:      'lib/json.c:1174,34'
              BranchSideFuncs:
                - strlen
                - json_string_unescape
                - json_error
                - free
                - json_parser_input_string
        - Branch String:   'lib/json.c:1174,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:1175,38'
              BranchSideFuncs:
                - json_parser_input_string
                - free
            - BranchSide:      'lib/json.c:1177,24'
              BranchSideFuncs:
                - json_error
                - free
      Callsites:
        - Src:             'lib/json.c:1168,23'
          Dst:             ds_cstr
        - Src:             'lib/json.c:1169,10'
          Dst:             strchr
        - Src:             'lib/json.c:1170,9'
          Dst:             json_parser_input_string
        - Src:             'lib/json.c:1174,39'
          Dst:             strlen
        - Src:             'lib/json.c:1174,13'
          Dst:             json_string_unescape
        - Src:             'lib/json.c:1175,13'
          Dst:             json_parser_input_string
        - Src:             'lib/json.c:1177,13'
          Dst:             json_error
    - functionName:    strchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    15
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_string_unescape
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1071
      functionLinenumberEnd: 1141
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - in
        - in_len
        - outp
      BBCount:         27
      ICount:          165
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - ds_clear
        - ds_cstr
        - ds_init
        - ds_put_char
        - ds_put_cstr
        - ds_put_format
        - ds_reserve
        - json_lex_unicode
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/json.c:1078,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:1079,14'
              BranchSideFuncs:
                - json_lex_unicode
                - ds_cstr
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_clear
                - ds_put_format
                - ds_clear
                - ds_put_cstr
                - ds_put_char
                - ds_clear
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1137,8'
              BranchSideFuncs:
                - ds_cstr
        - Branch String:   'lib/json.c:1079,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:1080,13'
              BranchSideFuncs:
                - ds_clear
                - ds_put_cstr
                - ds_cstr
            - BranchSide:      'lib/json.c:1084,14'
              BranchSideFuncs:
                - json_lex_unicode
                - ds_cstr
                - ds_clear
                - ds_put_cstr
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_clear
                - ds_put_format
                - ds_clear
                - ds_put_cstr
                - ds_put_char
        - Branch String:   'lib/json.c:1084,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:1085,34'
              BranchSideFuncs:
                - ds_put_char
                - ds_cstr
                - json_lex_unicode
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_clear
                - ds_put_format
                - ds_clear
                - ds_put_cstr
                - ds_clear
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1089,11'
              BranchSideFuncs:
                - json_lex_unicode
                - ds_cstr
                - ds_put_char
                - ds_clear
                - ds_put_cstr
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_clear
                - ds_put_format
                - ds_clear
                - ds_put_cstr
        - Branch String:   'lib/json.c:1090,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:1095,13'
              BranchSideFuncs:
                - ds_clear
                - ds_put_cstr
                - ds_cstr
            - BranchSide:      'lib/json.c:1099,20'
              BranchSideFuncs:
                - json_lex_unicode
                - ds_cstr
                - ds_clear
                - ds_put_cstr
                - ds_put_char
                - ds_clear
                - ds_put_cstr
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_clear
                - ds_put_format
        - Branch String:   'lib/json.c:1099,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1101,31'
              BranchSideFuncs:
                - ds_put_char
                - ds_cstr
                - json_lex_unicode
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_clear
                - ds_put_format
                - ds_clear
                - ds_put_cstr
                - ds_put_char
                - ds_clear
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1101,31'
              BranchSideFuncs:
                - ds_put_char
                - ds_cstr
                - json_lex_unicode
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_clear
                - ds_put_format
                - ds_clear
                - ds_put_cstr
                - ds_put_char
                - ds_clear
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1101,31'
              BranchSideFuncs:
                - ds_put_char
                - ds_cstr
                - json_lex_unicode
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_clear
                - ds_put_format
                - ds_clear
                - ds_put_cstr
                - ds_put_char
                - ds_clear
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1105,13'
              BranchSideFuncs:
                - ds_put_char
                - ds_cstr
                - json_lex_unicode
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_clear
                - ds_put_format
                - ds_clear
                - ds_put_cstr
                - ds_put_char
                - ds_clear
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1109,13'
              BranchSideFuncs:
                - ds_put_char
                - ds_cstr
                - json_lex_unicode
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_clear
                - ds_put_format
                - ds_clear
                - ds_put_cstr
                - ds_put_char
                - ds_clear
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1113,13'
              BranchSideFuncs:
                - ds_put_char
                - ds_cstr
                - json_lex_unicode
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_clear
                - ds_put_format
                - ds_clear
                - ds_put_cstr
                - ds_put_char
                - ds_clear
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1117,13'
              BranchSideFuncs:
                - ds_put_char
                - ds_cstr
                - json_lex_unicode
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_clear
                - ds_put_format
                - ds_clear
                - ds_put_cstr
                - ds_put_char
                - ds_clear
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1121,13'
              BranchSideFuncs:
                - ds_put_char
                - ds_cstr
                - json_lex_unicode
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_clear
                - ds_put_format
                - ds_clear
                - ds_put_cstr
                - ds_put_char
                - ds_clear
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1125,35'
              BranchSideFuncs:
                - json_lex_unicode
                - ds_cstr
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_clear
                - ds_put_format
                - ds_clear
                - ds_put_cstr
                - ds_put_char
                - ds_clear
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1132,13'
              BranchSideFuncs:
                - ds_clear
                - ds_put_format
                - ds_cstr
        - Branch String:   'lib/json.c:1126,17'
          Branch Sides:
            - BranchSide:      'lib/json.c:1127,17'
              BranchSideFuncs:
                - ds_cstr
                - json_lex_unicode
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_clear
                - ds_put_format
                - ds_clear
                - ds_put_cstr
                - ds_put_char
                - ds_clear
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1129,13'
              BranchSideFuncs:
                - ds_cstr
                - json_lex_unicode
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_put_char
                - ds_clear
                - ds_put_format
                - ds_clear
                - ds_put_cstr
                - ds_put_char
                - ds_clear
                - ds_put_cstr
      Callsites:
        - Src:             'lib/json.c:1076,5'
          Dst:             ds_init
        - Src:             'lib/json.c:1077,5'
          Dst:             ds_reserve
        - Src:             'lib/json.c:1080,13'
          Dst:             ds_clear
        - Src:             'lib/json.c:1081,13'
          Dst:             ds_put_cstr
        - Src:             'lib/json.c:1085,13'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1095,13'
          Dst:             ds_clear
        - Src:             'lib/json.c:1096,13'
          Dst:             ds_put_cstr
        - Src:             'lib/json.c:1101,13'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1105,13'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1109,13'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1113,13'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1117,13'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1121,13'
          Dst:             ds_put_char
        - Src:             'lib/json.c:1125,18'
          Dst:             json_lex_unicode
        - Src:             'lib/json.c:1132,13'
          Dst:             ds_clear
        - Src:             'lib/json.c:1133,13'
          Dst:             ds_put_format
        - Src:             'lib/json.c:1140,13'
          Dst:             ds_cstr
    - functionName:    json_lex_unicode
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1029
      functionLinenumberEnd: 1067
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cp
        - end
        - out
      BBCount:         19
      ICount:          142
      EdgeCount:       26
      CyclomaticComplexity: 9
      functionsReached:
        - ds_clear
        - ds_put_cstr
        - ds_put_utf8
        - json_lex_4hex
        - uc_is_leading_surrogate
        - uc_is_trailing_surrogate
        - utf16_decode_surrogate_pair
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/json.c:1034,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1035,18'
              BranchSideFuncs:
                - ds_clear
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1039,8'
              BranchSideFuncs:
                - uc_is_leading_surrogate
                - ds_put_utf8
                - json_lex_4hex
                - uc_is_trailing_surrogate
                - ds_clear
                - ds_put_cstr
                - utf16_decode_surrogate_pair
                - ds_put_utf8
                - ds_clear
                - ds_put_cstr
                - ds_clear
                - ds_put_cstr
        - Branch String:   'lib/json.c:1040,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1041,21'
              BranchSideFuncs:
                - json_lex_4hex
                - uc_is_trailing_surrogate
                - ds_clear
                - ds_put_cstr
                - utf16_decode_surrogate_pair
                - ds_put_utf8
                - ds_clear
                - ds_put_cstr
                - ds_clear
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1045,9'
              BranchSideFuncs:
                - json_lex_4hex
                - uc_is_trailing_surrogate
                - ds_clear
                - ds_put_cstr
                - utf16_decode_surrogate_pair
                - ds_put_utf8
                - ds_clear
                - ds_put_cstr
                - ds_clear
                - ds_put_cstr
        - Branch String:   'lib/json.c:1045,22'
          Branch Sides:
            - BranchSide:      'lib/json.c:1045,28'
              BranchSideFuncs:
                - ds_clear
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1046,18'
              BranchSideFuncs:
                - ds_clear
                - ds_put_cstr
        - Branch String:   'lib/json.c:1045,39'
          Branch Sides:
            - BranchSide:      'lib/json.c:1045,45'
              BranchSideFuncs:
                - ds_clear
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1046,18'
              BranchSideFuncs:
                - ds_clear
                - ds_put_cstr
        - Branch String:   'lib/json.c:1045,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1046,18'
              BranchSideFuncs:
                - ds_clear
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1051,27'
              BranchSideFuncs:
                - json_lex_4hex
                - uc_is_trailing_surrogate
                - ds_clear
                - ds_put_cstr
                - utf16_decode_surrogate_pair
                - ds_put_utf8
                - ds_clear
                - ds_put_cstr
        - Branch String:   'lib/json.c:1052,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1053,18'
              BranchSideFuncs:
                - ds_clear
                - ds_put_cstr
            - BranchSide:      'lib/json.c:1057,8'
              BranchSideFuncs:
                - uc_is_trailing_surrogate
                - ds_clear
                - ds_put_cstr
                - utf16_decode_surrogate_pair
                - ds_put_utf8
        - Branch String:   'lib/json.c:1058,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1059,18'
              BranchSideFuncs:
                - utf16_decode_surrogate_pair
                - ds_put_utf8
            - BranchSide:      'lib/json.c:1065,17'
              BranchSideFuncs:
                - utf16_decode_surrogate_pair
                - ds_put_utf8
      Callsites:
        - Src:             'lib/json.c:1033,13'
          Dst:             json_lex_4hex
        - Src:             'lib/json.c:1035,9'
          Dst:             ds_clear
        - Src:             'lib/json.c:1036,9'
          Dst:             ds_put_cstr
        - Src:             'lib/json.c:1040,10'
          Dst:             uc_is_leading_surrogate
        - Src:             'lib/json.c:1041,9'
          Dst:             ds_put_utf8
        - Src:             'lib/json.c:1046,9'
          Dst:             ds_clear
        - Src:             'lib/json.c:1047,9'
          Dst:             ds_put_cstr
        - Src:             'lib/json.c:1051,13'
          Dst:             json_lex_4hex
        - Src:             'lib/json.c:1053,9'
          Dst:             ds_clear
        - Src:             'lib/json.c:1054,9'
          Dst:             ds_put_cstr
        - Src:             'lib/json.c:1058,10'
          Dst:             uc_is_trailing_surrogate
        - Src:             'lib/json.c:1059,9'
          Dst:             ds_clear
        - Src:             'lib/json.c:1060,9'
          Dst:             ds_put_cstr
        - Src:             'lib/json.c:1065,22'
          Dst:             utf16_decode_surrogate_pair
        - Src:             'lib/json.c:1065,5'
          Dst:             ds_put_utf8
    - functionName:    json_lex_number
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 857
      functionLinenumberEnd: 1004
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         100
      ICount:          588
      EdgeCount:       134
      CyclomaticComplexity: 36
      functionsReached:
        - __ctype_b_loc
        - ds_cstr
        - json_error
        - json_parser_input
        - str_to_double
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/json.c:866,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:867,18'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - __ctype_b_loc
                - json_error
            - BranchSide:      'lib/json.c:873,17'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - __ctype_b_loc
                - json_error
        - Branch String:   'lib/json.c:874,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:875,11'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
            - BranchSide:      'lib/json.c:880,16'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
        - Branch String:   'lib/json.c:876,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:877,24'
              BranchSideFuncs:
                - json_error
            - BranchSide:      'lib/json.c:880,5'
              BranchSideFuncs:
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
        - Branch String:   'lib/json.c:880,16'
          Branch Sides:
            - BranchSide:      'lib/json.c:881,9'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
            - BranchSide:      'lib/json.c:893,20'
              BranchSideFuncs:
                - json_error
        - Branch String:   'lib/json.c:882,17'
          Branch Sides:
            - BranchSide:      'lib/json.c:883,31'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
            - BranchSide:      'lib/json.c:885,22'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
        - Branch String:   'lib/json.c:891,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:882,17'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
            - BranchSide:      'lib/json.c:892,5'
              BranchSideFuncs:
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
        - Branch String:   'lib/json.c:898,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:899,11'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
            - BranchSide:      'lib/json.c:916,10'
              BranchSideFuncs:
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
        - Branch String:   'lib/json.c:900,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:901,24'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
            - BranchSide:      'lib/json.c:904,9'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
        - Branch String:   'lib/json.c:905,17'
          Branch Sides:
            - BranchSide:      'lib/json.c:906,31'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
            - BranchSide:      'lib/json.c:908,25'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
        - Branch String:   'lib/json.c:912,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:905,17'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
            - BranchSide:      'lib/json.c:913,5'
              BranchSideFuncs:
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_error
        - Branch String:   'lib/json.c:916,20'
          Branch Sides:
            - BranchSide:      'lib/json.c:916,24'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - json_error
            - BranchSide:      'lib/json.c:917,14'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - json_error
        - Branch String:   'lib/json.c:916,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:917,14'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - json_error
            - BranchSide:      'lib/json.c:955,10'
              BranchSideFuncs:
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
        - Branch String:   'lib/json.c:921,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:922,15'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - json_error
            - BranchSide:      'lib/json.c:923,21'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_error
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - json_error
        - Branch String:   'lib/json.c:928,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:929,24'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - json_error
            - BranchSide:      'lib/json.c:933,18'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - json_error
        - Branch String:   'lib/json.c:935,17'
          Branch Sides:
            - BranchSide:      'lib/json.c:936,17'
              BranchSideFuncs:
                - json_error
            - BranchSide:      'lib/json.c:938,24'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - json_error
        - Branch String:   'lib/json.c:940,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:935,17'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - json_error
            - BranchSide:      'lib/json.c:942,13'
              BranchSideFuncs:
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - json_error
        - Branch String:   'lib/json.c:942,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:943,17'
              BranchSideFuncs:
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - json_error
            - BranchSide:      'lib/json.c:948,17'
              BranchSideFuncs:
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
                - json_error
        - Branch String:   'lib/json.c:943,17'
          Branch Sides:
            - BranchSide:      'lib/json.c:944,17'
              BranchSideFuncs:
                - json_error
            - BranchSide:      'lib/json.c:946,22'
              BranchSideFuncs:
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
        - Branch String:   'lib/json.c:948,17'
          Branch Sides:
            - BranchSide:      'lib/json.c:949,17'
              BranchSideFuncs:
                - json_error
            - BranchSide:      'lib/json.c:951,22'
              BranchSideFuncs:
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
                - json_error
        - Branch String:   'lib/json.c:955,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:956,20'
              BranchSideFuncs:
                - json_error
            - BranchSide:      'lib/json.c:963,10'
              BranchSideFuncs:
                - json_parser_input
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
        - Branch String:   'lib/json.c:963,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:964,15'
              BranchSideFuncs:
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
            - BranchSide:      'lib/json.c:970,10'
              BranchSideFuncs:
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
        - Branch String:   'lib/json.c:970,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:971,9'
              BranchSideFuncs:
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
            - BranchSide:      'lib/json.c:990,11'
              BranchSideFuncs:
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
        - Branch String:   'lib/json.c:971,26'
          Branch Sides:
            - BranchSide:      'lib/json.c:971,29'
              BranchSideFuncs:
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
            - BranchSide:      'lib/json.c:971,9'
              BranchSideFuncs:
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
        - Branch String:   'lib/json.c:971,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:972,25'
              BranchSideFuncs:
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
            - BranchSide:      'lib/json.c:975,9'
              BranchSideFuncs:
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
        - Branch String:   'lib/json.c:975,26'
          Branch Sides:
            - BranchSide:      'lib/json.c:975,29'
              BranchSideFuncs:
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
            - BranchSide:      'lib/json.c:975,9'
              BranchSideFuncs:
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
        - Branch String:   'lib/json.c:975,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:976,25'
              BranchSideFuncs:
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
            - BranchSide:      'lib/json.c:979,13'
              BranchSideFuncs:
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
        - Branch String:   'lib/json.c:980,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:980,16'
              BranchSideFuncs:
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
                - json_parser_input
            - BranchSide:      'lib/json.c:988,5'
              BranchSideFuncs:
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
        - Branch String:   'lib/json.c:979,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:983,19'
              BranchSideFuncs:
                - json_parser_input
            - BranchSide:      'lib/json.c:988,5'
              BranchSideFuncs:
                - ds_cstr
                - str_to_double
                - json_error
                - json_parser_input
        - Branch String:   'lib/json.c:984,29'
          Branch Sides:
            - BranchSide:      'lib/json.c:984,41'
              BranchSideFuncs:
                - json_parser_input
            - BranchSide:      'lib/json.c:984,55'
              BranchSideFuncs:
                - json_parser_input
        - Branch String:   'lib/json.c:991,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:992,20'
              BranchSideFuncs:
                - json_parser_input
            - BranchSide:      'lib/json.c:996,15'
              BranchSideFuncs:
                - json_parser_input
        - Branch String:   'lib/json.c:996,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:997,15'
              BranchSideFuncs:
                - json_parser_input
            - BranchSide:      'lib/json.c:999,23'
              BranchSideFuncs:
                - json_parser_input
      Callsites:
        - Src:             'lib/json.c:858,22'
          Dst:             ds_cstr
        - Src:             'lib/json.c:876,13'
          Dst:             __ctype_b_loc
        - Src:             'lib/json.c:877,13'
          Dst:             json_error
        - Src:             'lib/json.c:880,16'
          Dst:             __ctype_b_loc
        - Src:             'lib/json.c:891,18'
          Dst:             __ctype_b_loc
        - Src:             'lib/json.c:893,9'
          Dst:             json_error
        - Src:             'lib/json.c:900,14'
          Dst:             __ctype_b_loc
        - Src:             'lib/json.c:901,13'
          Dst:             json_error
        - Src:             'lib/json.c:912,18'
          Dst:             __ctype_b_loc
        - Src:             'lib/json.c:928,14'
          Dst:             __ctype_b_loc
        - Src:             'lib/json.c:929,13'
          Dst:             json_error
        - Src:             'lib/json.c:940,18'
          Dst:             __ctype_b_loc
        - Src:             'lib/json.c:956,9'
          Dst:             json_error
        - Src:             'lib/json.c:966,9'
          Dst:             json_parser_input
        - Src:             'lib/json.c:985,13'
          Dst:             json_parser_input
        - Src:             'lib/json.c:991,24'
          Dst:             ds_cstr
        - Src:             'lib/json.c:991,10'
          Dst:             str_to_double
        - Src:             'lib/json.c:992,9'
          Dst:             json_error
        - Src:             'lib/json.c:999,5'
          Dst:             json_parser_input
        - Src:             'lib/json.c:1003,5'
          Dst:             json_error
    - functionName:    __ctype_b_loc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    19
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_lex_keyword
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 837
      functionLinenumberEnd: 853
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         13
      ICount:          67
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - ds_cstr
        - json_error
        - json_parser_input
        - strcmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/json.c:842,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:843,15'
              BranchSideFuncs:
                - strcmp
                - json_parser_input
                - strcmp
                - json_error
            - BranchSide:      'lib/json.c:844,24'
              BranchSideFuncs:
                - strcmp
                - json_parser_input
                - strcmp
                - json_error
        - Branch String:   'lib/json.c:844,16'
          Branch Sides:
            - BranchSide:      'lib/json.c:845,15'
              BranchSideFuncs:
                - strcmp
                - json_parser_input
                - json_error
            - BranchSide:      'lib/json.c:846,24'
              BranchSideFuncs:
                - strcmp
                - json_parser_input
                - json_error
        - Branch String:   'lib/json.c:846,16'
          Branch Sides:
            - BranchSide:      'lib/json.c:847,15'
              BranchSideFuncs:
                - json_error
            - BranchSide:      'lib/json.c:849,20'
              BranchSideFuncs:
                - json_error
      Callsites:
        - Src:             'lib/json.c:841,9'
          Dst:             ds_cstr
        - Src:             'lib/json.c:842,10'
          Dst:             strcmp
        - Src:             'lib/json.c:844,17'
          Dst:             strcmp
        - Src:             'lib/json.c:846,17'
          Dst:             strcmp
        - Src:             'lib/json.c:849,9'
          Dst:             json_error
        - Src:             'lib/json.c:852,5'
          Dst:             json_parser_input
    - functionName:    strcmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    36
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_from_stream
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1252
      functionLinenumberEnd: 1274
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         13
      ICount:          78
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - ferror
        - fread
        - json_destroy
        - json_parser_create
        - json_parser_feed
        - json_parser_finish
        - json_string_create_nocopy
        - ovs_strerror
        - xasprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/json.c:1262,16'
          Branch Sides:
            - BranchSide:      'lib/json.c:1262,36'
              BranchSideFuncs:
                - json_parser_feed
                - fread
                - json_parser_finish
                - ferror
                - json_destroy.6
                - __errno_location
                - ovs_strerror
                - xasprintf
                - json_string_create_nocopy
            - BranchSide:      'lib/json.c:1263,13'
              BranchSideFuncs:
                - json_parser_finish
                - ferror
                - json_destroy.6
                - __errno_location
                - ovs_strerror
                - xasprintf
                - json_string_create_nocopy
        - Branch String:   'lib/json.c:1262,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:1257,5'
              BranchSideFuncs:
                - json_parser_finish
                - ferror
                - json_destroy.6
                - __errno_location
                - ovs_strerror
                - xasprintf
                - json_string_create_nocopy
            - BranchSide:      'lib/json.c:1263,13'
              BranchSideFuncs:
                - json_parser_finish
                - ferror
                - json_destroy.6
                - __errno_location
                - ovs_strerror
                - xasprintf
                - json_string_create_nocopy
        - Branch String:   'lib/json.c:1268,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1268,9'
              BranchSideFuncs:
                - json_destroy.6
                - __errno_location
                - ovs_strerror
                - xasprintf
                - json_string_create_nocopy
            - BranchSide:      'lib/json.c:1269,22'
              BranchSideFuncs:
                - json_destroy.6
                - __errno_location
                - ovs_strerror
                - xasprintf
                - json_string_create_nocopy
      Callsites:
        - Src:             'lib/json.c:1256,9'
          Dst:             json_parser_create
        - Src:             'lib/json.c:1261,13'
          Dst:             fread
        - Src:             'lib/json.c:1262,19'
          Dst:             json_parser_feed
        - Src:             'lib/json.c:1266,12'
          Dst:             json_parser_finish
        - Src:             'lib/json.c:1268,9'
          Dst:             ferror
        - Src:             'lib/json.c:1269,9'
          Dst:             json_destroy
        - Src:             'lib/json.c:1271,69'
          Dst:             __errno_location
        - Src:             'lib/json.c:1271,56'
          Dst:             ovs_strerror
        - Src:             'lib/json.c:1271,13'
          Dst:             xasprintf
        - Src:             'lib/json.c:1270,16'
          Dst:             json_string_create_nocopy
    - functionName:    json_parser_create
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1279
      functionLinenumberEnd: 1282
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - flags
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xzalloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1280,29'
          Dst:             xzalloc
    - functionName:    fread
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_parser_feed
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1299
      functionLinenumberEnd: 1402
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - p
        - input
        - n
      BBCount:         95
      ICount:          521
      EdgeCount:       103
      CyclomaticComplexity: 10
      functionsReached:
        - __ctype_b_loc
        - ds_put_buffer
        - json_error
        - json_lex_keyword
        - json_lex_number
        - json_lex_string
        - json_parser_input
        - ovs_abort
        - strchr
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/json.c:1303,26'
          Branch Sides:
            - BranchSide:      'lib/json.c:1303,5'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1303,29'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
        - Branch String:   'lib/json.c:1303,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:1304,14'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1399,10'
              BranchSideFuncs:
                - ds_put_buffer
        - Branch String:   'lib/json.c:1310,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1312,21'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - ovs_abort
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
            - BranchSide:      'lib/json.c:1357,18'
              BranchSideFuncs:
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1366,44'
              BranchSideFuncs:
                - strchr
                - ds_put_buffer
                - json_lex_number
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1375,17'
              BranchSideFuncs:
                - ds_put_buffer
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
                - json_error
                - ds_put_buffer
                - json_lex_string
            - BranchSide:      'lib/json.c:1386,13'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1390,13'
              BranchSideFuncs:
                - ovs_abort
        - Branch String:   'lib/json.c:1312,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:1315,31'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1315,31'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1315,31'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1315,31'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1324,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1329,30'
              BranchSideFuncs:
                - json_parser_input
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1329,30'
              BranchSideFuncs:
                - json_parser_input
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1329,30'
              BranchSideFuncs:
                - json_parser_input
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1329,30'
              BranchSideFuncs:
                - json_parser_input
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1329,30'
              BranchSideFuncs:
                - json_parser_input
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1329,30'
              BranchSideFuncs:
                - json_parser_input
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1337,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1337,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1337,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1337,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1337,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1337,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1337,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1337,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1337,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1337,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1337,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1342,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1347,21'
              BranchSideFuncs:
                - __ctype_b_loc
                - json_error
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - ovs_abort
                - json_error
        - Branch String:   'lib/json.c:1347,21'
          Branch Sides:
            - BranchSide:      'lib/json.c:1348,32'
              BranchSideFuncs:
                - json_error
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1350,32'
              BranchSideFuncs:
                - json_error
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - ovs_abort
        - Branch String:   'lib/json.c:1357,17'
          Branch Sides:
            - BranchSide:      'lib/json.c:1358,32'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1363,13'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
        - Branch String:   'lib/json.c:1366,17'
          Branch Sides:
            - BranchSide:      'lib/json.c:1367,32'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1372,13'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
        - Branch String:   'lib/json.c:1375,17'
          Branch Sides:
            - BranchSide:      'lib/json.c:1376,17'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1377,24'
              BranchSideFuncs:
                - ds_put_buffer
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
                - json_error
                - ds_put_buffer
                - json_lex_string
        - Branch String:   'lib/json.c:1377,24'
          Branch Sides:
            - BranchSide:      'lib/json.c:1378,32'
              BranchSideFuncs:
                - ds_put_buffer
                - json_lex_string
                - ds_put_buffer
                - json_error
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1380,24'
              BranchSideFuncs:
                - ds_put_buffer
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
                - json_error
        - Branch String:   'lib/json.c:1393,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:1303,5'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1394,38'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
        - Branch String:   'lib/json.c:1289,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1290,9'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
            - BranchSide:      'lib/json.c:1293,9'
              BranchSideFuncs:
                - ds_put_buffer
                - json_error
                - ds_put_buffer
                - json_lex_string
                - strchr
                - ds_put_buffer
                - json_lex_number
                - __ctype_b_loc
                - ds_put_buffer
                - json_lex_keyword
                - json_parser_input
                - __ctype_b_loc
                - json_error
                - json_error
                - ovs_abort
        - Branch String:   'lib/json.c:1399,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1399,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:1400,24'
              BranchSideFuncs:
                - ds_put_buffer
      Callsites:
        - Src:             'lib/json.c:1330,17'
          Dst:             json_parser_input
        - Src:             'lib/json.c:1347,21'
          Dst:             __ctype_b_loc
        - Src:             'lib/json.c:1348,21'
          Dst:             json_error
        - Src:             'lib/json.c:1350,21'
          Dst:             json_error
        - Src:             'lib/json.c:1357,18'
          Dst:             __ctype_b_loc
        - Src:             'lib/json.c:1358,17'
          Dst:             ds_put_buffer
        - Src:             'lib/json.c:1359,17'
          Dst:             json_lex_keyword
        - Src:             'lib/json.c:1366,18'
          Dst:             strchr
        - Src:             'lib/json.c:1367,17'
          Dst:             ds_put_buffer
        - Src:             'lib/json.c:1368,17'
          Dst:             json_lex_number
        - Src:             'lib/json.c:1378,17'
          Dst:             ds_put_buffer
        - Src:             'lib/json.c:1379,17'
          Dst:             json_lex_string
        - Src:             'lib/json.c:1381,17'
          Dst:             json_error
        - Src:             'lib/json.c:1390,13'
          Dst:             ovs_abort
        - Src:             'lib/json.c:1400,9'
          Dst:             ds_put_buffer
    - functionName:    json_parser_finish
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1413
      functionLinenumberEnd: 1448
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         21
      ICount:          131
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - json_error
        - json_parser_abort
        - json_parser_feed
        - json_string_create_nocopy
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/json.c:1416,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:1418,9'
              BranchSideFuncs:
                - json_parser_abort
                - json_string_create_nocopy
                - json_error
                - json_error
            - BranchSide:      'lib/json.c:1422,20'
              BranchSideFuncs:
                - json_error
                - json_parser_abort
                - json_string_create_nocopy
                - json_error
                - json_error
            - BranchSide:      'lib/json.c:1422,20'
              BranchSideFuncs:
                - json_error
                - json_parser_abort
                - json_string_create_nocopy
                - json_error
                - json_error
            - BranchSide:      'lib/json.c:1427,26'
              BranchSideFuncs:
                - json_parser_feed
                - json_parser_abort
                - json_string_create_nocopy
                - json_error
                - json_error
            - BranchSide:      'lib/json.c:1427,26'
              BranchSideFuncs:
                - json_parser_feed
                - json_parser_abort
                - json_string_create_nocopy
                - json_error
                - json_error
            - BranchSide:      'lib/json.c:1431,9'
              BranchSideFuncs:
                - json_parser_abort
                - json_string_create_nocopy
                - json_error
                - json_error
        - Branch String:   'lib/json.c:1431,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1432,20'
              BranchSideFuncs:
                - json_error
                - json_parser_abort
                - json_string_create_nocopy
            - BranchSide:      'lib/json.c:1433,16'
              BranchSideFuncs:
                - json_parser_abort
                - json_string_create_nocopy
                - json_error
        - Branch String:   'lib/json.c:1437,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1438,9'
              BranchSideFuncs:
                - json_string_create_nocopy
                - json_parser_abort
            - BranchSide:      'lib/json.c:1442,42'
              BranchSideFuncs:
                - json_string_create_nocopy
                - json_parser_abort
      Callsites:
        - Src:             'lib/json.c:1422,9'
          Dst:             json_error
        - Src:             'lib/json.c:1427,9'
          Dst:             json_parser_feed
        - Src:             'lib/json.c:1432,9'
          Dst:             json_error
        - Src:             'lib/json.c:1434,9'
          Dst:             json_error
        - Src:             'lib/json.c:1442,16'
          Dst:             json_string_create_nocopy
        - Src:             'lib/json.c:1446,5'
          Dst:             json_parser_abort
    - functionName:    ferror
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __errno_location
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    147
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_string_create_nocopy
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:181,25'
          Dst:             json_create
    - functionName:    json_from_file
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1226
      functionLinenumberEnd: 1240
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - file_name
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - fclose
        - fopen
        - json_from_stream
        - json_string_create_nocopy
        - ovs_strerror
        - xasprintf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/json.c:1231,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:1233,51'
              BranchSideFuncs:
                - json_from_stream
                - fclose
            - BranchSide:      'lib/json.c:1236,29'
              BranchSideFuncs:
                - json_from_stream
                - fclose
      Callsites:
        - Src:             'lib/json.c:1230,14'
          Dst:             fopen
        - Src:             'lib/json.c:1234,36'
          Dst:             __errno_location
        - Src:             'lib/json.c:1234,23'
          Dst:             ovs_strerror
        - Src:             'lib/json.c:1233,13'
          Dst:             xasprintf
        - Src:             'lib/json.c:1232,16'
          Dst:             json_string_create_nocopy
        - Src:             'lib/json.c:1236,12'
          Dst:             json_from_stream
        - Src:             'lib/json.c:1237,5'
          Dst:             fclose
    - functionName:    fopen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fclose
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_from_serialized_object
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1212
      functionLinenumberEnd: 1213
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_from_string
        - json_serialized_object
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1213,29'
          Dst:             json_serialized_object
        - Src:             'lib/json.c:1213,12'
          Dst:             json_from_string
    - functionName:    json_from_string
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1203
      functionLinenumberEnd: 1206
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - string
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_parser_create
        - json_parser_feed
        - json_parser_finish
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1204,29'
          Dst:             json_parser_create
        - Src:             'lib/json.c:1205,33'
          Dst:             strlen
        - Src:             'lib/json.c:1205,5'
          Dst:             json_parser_feed
        - Src:             'lib/json.c:1206,12'
          Dst:             json_parser_finish
    - functionName:    json_to_ds
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1761
      functionLinenumberEnd: 1768
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
        - flags
        - ds
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_serialize
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1767,5'
          Dst:             json_serialize
    - functionName:    json_string_escape
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1146
      functionLinenumberEnd: 1153
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - in
        - out
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_to_ds
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1152,5'
          Dst:             json_to_ds
    - functionName:    json_equal_array
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 776
      functionLinenumberEnd: 790
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - json_array_at
        - json_array_size
        - json_equal
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/json.c:779,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:780,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:783,12'
              BranchSideFuncs:
                - json_array_at
                - json_array_at
                - json_equal
        - Branch String:   'lib/json.c:783,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:784,39'
              BranchSideFuncs:
                - json_array_at
                - json_array_at
                - json_equal
            - BranchSide:      'lib/json.c:789,5'
              BranchSideFuncs: []
        - Branch String:   'lib/json.c:784,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:785,13'
              BranchSideFuncs:
                - json_array_at
                - json_array_at
                - json_equal
            - BranchSide:      'lib/json.c:787,5'
              BranchSideFuncs:
                - json_array_at
                - json_array_at
                - json_equal
      Callsites:
        - Src:             'lib/json.c:777,19'
          Dst:             json_array_size
        - Src:             'lib/json.c:779,14'
          Dst:             json_array_size
        - Src:             'lib/json.c:784,25'
          Dst:             json_array_at
        - Src:             'lib/json.c:784,46'
          Dst:             json_array_at
        - Src:             'lib/json.c:784,14'
          Dst:             json_equal
    - functionName:    json_equal
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 794
      functionLinenumberEnd: 831
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         28
      ICount:          161
      EdgeCount:       30
      CyclomaticComplexity: 4
      functionsReached:
        - abort
        - json_equal_array
        - json_equal_object
        - json_serialized_object
        - json_string
        - strcmp
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/json.c:795,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:796,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:797,17'
              BranchSideFuncs:
                - abort
                - json_serialized_object
                - json_serialized_object
                - strcmp
                - json_string
                - json_string
                - strcmp
                - json_equal_array
                - json_equal_object
        - Branch String:   'lib/json.c:797,19'
          Branch Sides:
            - BranchSide:      'lib/json.c:797,23'
              BranchSideFuncs:
                - abort
                - json_serialized_object
                - json_serialized_object
                - strcmp
                - json_string
                - json_string
                - strcmp
                - json_equal_array
                - json_equal_object
            - BranchSide:      'lib/json.c:798,9'
              BranchSideFuncs: []
        - Branch String:   'lib/json.c:797,16'
          Branch Sides:
            - BranchSide:      'lib/json.c:798,9'
              BranchSideFuncs:
                - abort
                - json_serialized_object
                - json_serialized_object
                - strcmp
                - json_string
                - json_string
                - strcmp
                - json_equal_array
                - json_equal_object
            - BranchSide:      'lib/json.c:799,16'
              BranchSideFuncs:
                - abort
                - json_serialized_object
                - json_serialized_object
                - strcmp
                - json_string
                - json_string
                - strcmp
                - json_equal_array
                - json_equal_object
        - Branch String:   'lib/json.c:803,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:805,34'
              BranchSideFuncs:
                - json_equal_object
            - BranchSide:      'lib/json.c:808,33'
              BranchSideFuncs:
                - json_equal_array
            - BranchSide:      'lib/json.c:811,36'
              BranchSideFuncs:
                - json_string
                - json_string
                - strcmp
            - BranchSide:      'lib/json.c:814,47'
              BranchSideFuncs:
                - json_serialized_object
                - json_serialized_object
                - strcmp
            - BranchSide:      'lib/json.c:819,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:819,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:819,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:822,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:825,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:827,5'
              BranchSideFuncs:
                - abort
            - BranchSide:      'lib/json.c:829,9'
              BranchSideFuncs:
                - abort
      Callsites:
        - Src:             'lib/json.c:805,16'
          Dst:             json_equal_object
        - Src:             'lib/json.c:808,16'
          Dst:             json_equal_array
        - Src:             'lib/json.c:811,24'
          Dst:             json_string
        - Src:             'lib/json.c:811,40'
          Dst:             json_string
        - Src:             'lib/json.c:811,17'
          Dst:             strcmp
        - Src:             'lib/json.c:814,24'
          Dst:             json_serialized_object
        - Src:             'lib/json.c:814,51'
          Dst:             json_serialized_object
        - Src:             'lib/json.c:814,17'
          Dst:             strcmp
        - Src:             'lib/json.c:829,9'
          Dst:             abort
    - functionName:    json_equal_object
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 757
      functionLinenumberEnd: 772
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         18
      ICount:          103
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - hmap_first
        - hmap_next
        - json_equal
        - shash_count
        - shash_find
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/json.c:760,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:761,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:764,5'
              BranchSideFuncs:
                - hmap_first
                - shash_find
                - json_equal
                - hmap_next
        - Branch String:   'lib/json.c:764,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:764,5'
              BranchSideFuncs:
                - shash_find
                - json_equal
                - hmap_next
            - BranchSide:      'lib/json.c:764,5'
              BranchSideFuncs:
                - shash_find
                - json_equal
                - hmap_next
        - Branch String:   'lib/json.c:764,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:765,48'
              BranchSideFuncs:
                - shash_find
                - json_equal
                - hmap_next
            - BranchSide:      'lib/json.c:771,5'
              BranchSideFuncs: []
        - Branch String:   'lib/json.c:766,21'
          Branch Sides:
            - BranchSide:      'lib/json.c:766,36'
              BranchSideFuncs:
                - json_equal
                - hmap_next
                - shash_find
            - BranchSide:      'lib/json.c:767,13'
              BranchSideFuncs: []
        - Branch String:   'lib/json.c:766,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:767,13'
              BranchSideFuncs:
                - hmap_next
                - shash_find
                - json_equal
            - BranchSide:      'lib/json.c:769,5'
              BranchSideFuncs:
                - hmap_next
                - shash_find
                - json_equal
      Callsites:
        - Src:             'lib/json.c:760,9'
          Dst:             shash_count
        - Src:             'lib/json.c:760,27'
          Dst:             shash_count
        - Src:             'lib/json.c:764,5'
          Dst:             hmap_first
        - Src:             'lib/json.c:765,37'
          Dst:             shash_find
        - Src:             'lib/json.c:766,25'
          Dst:             json_equal
        - Src:             'lib/json.c:764,5'
          Dst:             hmap_next
    - functionName:    hash_int
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - x
        - basis
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_2words
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:409,12'
          Dst:             hash_2words
    - functionName:    hash_string
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - s
        - basis
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_bytes
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:404,26'
          Dst:             strlen
        - Src:             'lib/hash.h:404,12'
          Dst:             hash_bytes
    - functionName:    json_hash_array
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 712
      functionLinenumberEnd: 719
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - json
        - basis
      BBCount:         7
      ICount:          56
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - hash_int
        - json_array_at
        - json_array_size
        - json_hash
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/json.c:716,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:717,41'
              BranchSideFuncs:
                - json_array_at
                - json_hash
            - BranchSide:      'lib/json.c:719,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/json.c:713,19'
          Dst:             json_array_size
        - Src:             'lib/json.c:715,13'
          Dst:             hash_int
        - Src:             'lib/json.c:717,27'
          Dst:             json_array_at
        - Src:             'lib/json.c:717,17'
          Dst:             json_hash
    - functionName:    json_hash
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 724
      functionLinenumberEnd: 753
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - json
        - basis
      BBCount:         17
      ICount:          122
      EdgeCount:       32
      CyclomaticComplexity: 17
      functionsReached:
        - abort
        - hash_double
        - hash_int
        - hash_string
        - json_hash_array
        - json_hash_object
        - json_serialized_object
        - json_string
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/json.c:725,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:727,33'
              BranchSideFuncs:
                - json_hash_object
            - BranchSide:      'lib/json.c:730,32'
              BranchSideFuncs:
                - json_hash_array
            - BranchSide:      'lib/json.c:733,40'
              BranchSideFuncs:
                - json_string
                - hash_string
            - BranchSide:      'lib/json.c:736,51'
              BranchSideFuncs:
                - json_serialized_object
                - hash_string
            - BranchSide:      'lib/json.c:741,25'
              BranchSideFuncs:
                - hash_int
            - BranchSide:      'lib/json.c:741,25'
              BranchSideFuncs:
                - hash_int
            - BranchSide:      'lib/json.c:741,25'
              BranchSideFuncs:
                - hash_int
            - BranchSide:      'lib/json.c:744,25'
              BranchSideFuncs:
                - hash_int
            - BranchSide:      'lib/json.c:747,28'
              BranchSideFuncs:
                - hash_double
            - BranchSide:      'lib/json.c:749,5'
              BranchSideFuncs:
                - abort
            - BranchSide:      'lib/json.c:751,9'
              BranchSideFuncs:
                - abort
      Callsites:
        - Src:             'lib/json.c:727,16'
          Dst:             json_hash_object
        - Src:             'lib/json.c:730,16'
          Dst:             json_hash_array
        - Src:             'lib/json.c:733,28'
          Dst:             json_string
        - Src:             'lib/json.c:733,16'
          Dst:             hash_string
        - Src:             'lib/json.c:736,28'
          Dst:             json_serialized_object
        - Src:             'lib/json.c:736,16'
          Dst:             hash_string
        - Src:             'lib/json.c:741,16'
          Dst:             hash_int
        - Src:             'lib/json.c:744,16'
          Dst:             hash_int
        - Src:             'lib/json.c:747,16'
          Dst:             hash_double
        - Src:             'lib/json.c:751,9'
          Dst:             abort
    - functionName:    json_hash_object
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 695
      functionLinenumberEnd: 707
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - object
        - basis
      BBCount:         7
      ICount:          71
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - hash_string
        - json_hash
        - shash_count
        - shash_sort
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/json.c:701,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:702,41'
              BranchSideFuncs:
                - hash_string
                - json_hash
                - free
            - BranchSide:      'lib/json.c:706,10'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'lib/json.c:699,13'
          Dst:             shash_sort
        - Src:             'lib/json.c:700,9'
          Dst:             shash_count
        - Src:             'lib/json.c:703,17'
          Dst:             hash_string
        - Src:             'lib/json.c:704,17'
          Dst:             json_hash
    - functionName:    json_clone
      functionSourceFile: '/src/openvswitch/./include/openvswitch/json.h'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - json_
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_nullable_clone
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 645
      functionLinenumberEnd: 646
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_clone
      functionUses:    6
      BranchProfiles:
        - Branch String:   'lib/json.c:646,12'
          Branch Sides:
            - BranchSide:      'lib/json.c:646,30'
              BranchSideFuncs:
                - json_clone
            - BranchSide:      'lib/json.c:646,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/json.c:646,19'
          Dst:             json_clone
    - functionName:    json_deep_clone_array
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 665
      functionLinenumberEnd: 691
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
      BBCount:         14
      ICount:          106
      EdgeCount:       14
      CyclomaticComplexity: 2
      functionsReached:
        - json_array_at
        - json_array_create
        - json_array_create_1
        - json_array_create_2
        - json_array_create_3
        - json_array_create_empty
        - json_array_size
        - json_deep_clone
        - xmalloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/json.c:670,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:672,16'
              BranchSideFuncs:
                - json_array_create_empty
            - BranchSide:      'lib/json.c:674,66'
              BranchSideFuncs:
                - json_array_at
                - json_deep_clone
                - json_array_create_1
            - BranchSide:      'lib/json.c:676,66'
              BranchSideFuncs:
                - json_array_at
                - json_deep_clone
                - json_array_at
                - json_deep_clone
                - json_array_create_2
            - BranchSide:      'lib/json.c:679,66'
              BranchSideFuncs:
                - json_array_at
                - json_deep_clone
                - json_array_at
                - json_deep_clone
                - json_array_at
                - json_deep_clone
                - json_array_create_3
            - BranchSide:      'lib/json.c:683,9'
              BranchSideFuncs:
                - xmalloc
                - json_array_create
                - json_array_at
                - json_deep_clone
        - Branch String:   'lib/json.c:687,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:688,53'
              BranchSideFuncs:
                - json_array_at
                - json_deep_clone
                - json_array_create
            - BranchSide:      'lib/json.c:690,30'
              BranchSideFuncs:
                - json_array_create
      Callsites:
        - Src:             'lib/json.c:669,9'
          Dst:             json_array_size
        - Src:             'lib/json.c:672,16'
          Dst:             json_array_create_empty
        - Src:             'lib/json.c:674,52'
          Dst:             json_array_at
        - Src:             'lib/json.c:674,36'
          Dst:             json_deep_clone
        - Src:             'lib/json.c:674,16'
          Dst:             json_array_create_1
        - Src:             'lib/json.c:676,52'
          Dst:             json_array_at
        - Src:             'lib/json.c:676,36'
          Dst:             json_deep_clone
        - Src:             'lib/json.c:677,52'
          Dst:             json_array_at
        - Src:             'lib/json.c:677,36'
          Dst:             json_deep_clone
        - Src:             'lib/json.c:676,16'
          Dst:             json_array_create_2
        - Src:             'lib/json.c:679,52'
          Dst:             json_array_at
        - Src:             'lib/json.c:679,36'
          Dst:             json_deep_clone
        - Src:             'lib/json.c:680,52'
          Dst:             json_array_at
        - Src:             'lib/json.c:680,36'
          Dst:             json_deep_clone
        - Src:             'lib/json.c:681,52'
          Dst:             json_array_at
        - Src:             'lib/json.c:681,36'
          Dst:             json_deep_clone
        - Src:             'lib/json.c:679,16'
          Dst:             json_array_create_3
        - Src:             'lib/json.c:686,16'
          Dst:             xmalloc
        - Src:             'lib/json.c:688,39'
          Dst:             json_array_at
        - Src:             'lib/json.c:688,23'
          Dst:             json_deep_clone
        - Src:             'lib/json.c:690,12'
          Dst:             json_array_create
    - functionName:    json_deep_clone
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 641
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
      BBCount:         17
      ICount:          99
      EdgeCount:       32
      CyclomaticComplexity: 17
      functionsReached:
        - abort
        - json_create
        - json_deep_clone_array
        - json_deep_clone_object
        - json_integer_create
        - json_real_create
        - json_serialized_object_create
        - json_string
        - json_string_create
      functionUses:    8
      BranchProfiles:
        - Branch String:   'lib/json.c:613,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:615,39'
              BranchSideFuncs:
                - json_deep_clone_object
            - BranchSide:      'lib/json.c:618,38'
              BranchSideFuncs:
                - json_deep_clone_array
            - BranchSide:      'lib/json.c:621,47'
              BranchSideFuncs:
                - json_string
                - json_string_create
            - BranchSide:      'lib/json.c:624,46'
              BranchSideFuncs:
                - json_serialized_object_create
            - BranchSide:      'lib/json.c:629,28'
              BranchSideFuncs:
                - json_create
            - BranchSide:      'lib/json.c:629,28'
              BranchSideFuncs:
                - json_create
            - BranchSide:      'lib/json.c:629,28'
              BranchSideFuncs:
                - json_create
            - BranchSide:      'lib/json.c:632,36'
              BranchSideFuncs:
                - json_integer_create
            - BranchSide:      'lib/json.c:635,33'
              BranchSideFuncs:
                - json_real_create
            - BranchSide:      'lib/json.c:637,5'
              BranchSideFuncs:
                - abort
            - BranchSide:      'lib/json.c:639,9'
              BranchSideFuncs:
                - abort
      Callsites:
        - Src:             'lib/json.c:615,16'
          Dst:             json_deep_clone_object
        - Src:             'lib/json.c:618,16'
          Dst:             json_deep_clone_array
        - Src:             'lib/json.c:621,35'
          Dst:             json_string
        - Src:             'lib/json.c:621,16'
          Dst:             json_string_create
        - Src:             'lib/json.c:624,16'
          Dst:             json_serialized_object_create
        - Src:             'lib/json.c:629,16'
          Dst:             json_create
        - Src:             'lib/json.c:632,16'
          Dst:             json_integer_create
        - Src:             'lib/json.c:635,16'
          Dst:             json_real_create
        - Src:             'lib/json.c:639,9'
          Dst:             abort
    - functionName:    json_array_create_1
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - elem0
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:343,25'
          Dst:             json_create
    - functionName:    json_array_create_2
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - elem0
        - elem1
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:354,25'
          Dst:             json_create
    - functionName:    json_array_create_3
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - elem0
        - elem1
        - elem2
      BBCount:         3
      ICount:          43
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:366,25'
          Dst:             json_create
    - functionName:    json_array_create
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 337
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - elements
        - n
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:332,25'
          Dst:             json_create
    - functionName:    json_deep_clone_object
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 651
      functionLinenumberEnd: 660
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - object
      BBCount:         10
      ICount:          73
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - hmap_first
        - hmap_next
        - json_deep_clone
        - json_object_create
        - json_object_put
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/json.c:656,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:656,5'
              BranchSideFuncs:
                - json_deep_clone
                - json_object_put
                - hmap_next
            - BranchSide:      'lib/json.c:656,5'
              BranchSideFuncs:
                - json_deep_clone
                - json_object_put
                - hmap_next
        - Branch String:   'lib/json.c:656,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:657,30'
              BranchSideFuncs:
                - json_deep_clone
                - json_object_put
                - hmap_next
            - BranchSide:      'lib/json.c:660,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/json.c:655,12'
          Dst:             json_object_create
        - Src:             'lib/json.c:656,5'
          Dst:             hmap_first
        - Src:             'lib/json.c:658,43'
          Dst:             json_deep_clone
        - Src:             'lib/json.c:658,9'
          Dst:             json_object_put
        - Src:             'lib/json.c:656,5'
          Dst:             hmap_next
    - functionName:    json_serialized_object_create
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - src
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
        - json_to_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:212,25'
          Dst:             json_create
        - Src:             'lib/json.c:213,21'
          Dst:             json_to_string
    - functionName:    json_to_string
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1750
      functionLinenumberEnd: 1755
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - json
        - flags
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_init
        - ds_steal_cstr
        - json_to_ds
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:1753,5'
          Dst:             ds_init
        - Src:             'lib/json.c:1754,5'
          Dst:             json_to_ds
        - Src:             'lib/json.c:1755,12'
          Dst:             ds_steal_cstr
    - functionName:    json_object_put
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
        - name
        - value
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_destroy
        - shash_replace
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:419,18'
          Dst:             shash_replace
        - Src:             'lib/json.c:419,5'
          Dst:             json_destroy
    - functionName:    json_integer
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 517
      functionLinenumberEnd: 519
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_real
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      double
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
      BBCount:         7
      ICount:          50
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/json.c:511,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:511,5'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:511,5'
              BranchSideFuncs: []
        - Branch String:   'lib/json.c:512,12'
          Branch Sides:
            - BranchSide:      'lib/json.c:512,38'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:512,51'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    json_boolean
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
      BBCount:         4
      ICount:          33
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/json.c:504,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:504,5'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:504,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    json_object
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 498
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_object_put_uuid
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
        - name
        - uuid
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_put
        - json_string_create_uuid
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:448,33'
          Dst:             json_string_create_uuid
        - Src:             'lib/json.c:448,5'
          Dst:             json_object_put
    - functionName:    json_string_create_uuid
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - uuid
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_string_create_nocopy
        - uuid_to_string
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:206,38'
          Dst:             uuid_to_string
        - Src:             'lib/json.c:206,12'
          Dst:             json_string_create_nocopy
    - functionName:    uuid_to_string
      functionSourceFile: '/src/openvswitch/lib/uuid.h'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - uuid
      BBCount:         3
      ICount:          49
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - snprintf
        - xmalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/uuid.h:85,18'
          Dst:             xmalloc
        - Src:             'lib/uuid.h:87,5'
          Dst:             snprintf
    - functionName:    snprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_object_put_format
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 437
      functionLinenumberEnd: 443
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
        - name
        - format
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_put
        - json_string_create_nocopy
        - xvasprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:441,47'
          Dst:             xvasprintf
        - Src:             'lib/json.c:441,21'
          Dst:             json_string_create_nocopy
        - Src:             'lib/json.c:440,5'
          Dst:             json_object_put
    - functionName:    json_object_put_string
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 430
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
        - name
        - value
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_object_put
        - json_string_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:431,33'
          Dst:             json_string_create
        - Src:             'lib/json.c:431,5'
          Dst:             json_object_put
    - functionName:    json_array_contains_string
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 378
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
        - str
      BBCount:         13
      ICount:          78
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - json_array_at
        - json_array_size
        - json_string
        - strcmp
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/json.c:381,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:382,49'
              BranchSideFuncs:
                - json_array_at
                - json_string
                - strcmp
            - BranchSide:      'lib/json.c:388,5'
              BranchSideFuncs: []
        - Branch String:   'lib/json.c:384,39'
          Branch Sides:
            - BranchSide:      'lib/json.c:384,62'
              BranchSideFuncs:
                - json_string
                - strcmp
                - json_array_at
            - BranchSide:      'lib/json.c:387,5'
              BranchSideFuncs:
                - json_array_at
                - json_string
                - strcmp
        - Branch String:   'lib/json.c:384,13'
          Branch Sides:
            - BranchSide:      'lib/json.c:385,13'
              BranchSideFuncs:
                - json_array_at
                - json_string
                - strcmp
            - BranchSide:      'lib/json.c:387,5'
              BranchSideFuncs:
                - json_array_at
                - json_string
                - strcmp
      Callsites:
        - Src:             'lib/json.c:379,16'
          Dst:             json_array_size
        - Src:             'lib/json.c:382,35'
          Dst:             json_array_at
        - Src:             'lib/json.c:384,50'
          Dst:             json_string
        - Src:             'lib/json.c:384,43'
          Dst:             strcmp
    - functionName:    json_array_pop
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
      BBCount:         10
      ICount:          99
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - json_array_size
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/json.c:294,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:295,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:297,9'
              BranchSideFuncs: []
        - Branch String:   'lib/json.c:297,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:298,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:300,9'
              BranchSideFuncs: []
        - Branch String:   'lib/json.c:300,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:301,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:306,28'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/json.c:294,10'
          Dst:             json_array_size
    - functionName:    json_array_set
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 282
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
        - index
        - element
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_array_size
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/json.c:284,9'
          Branch Sides:
            - BranchSide:      'lib/json.c:285,39'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:287,33'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/json.c:283,5'
          Dst:             json_array_size
    - functionName:    json_serialized_object_create_with_yield
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - src
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_create
        - json_to_string
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/json.c:220,25'
          Dst:             json_create
        - Src:             'lib/json.c:221,21'
          Dst:             json_to_string
    - functionName:    json_type_to_string
      functionSourceFile: '/src/openvswitch/lib/json.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - type
      BBCount:         16
      ICount:          68
      EdgeCount:       30
      CyclomaticComplexity: 16
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/json.c:134,5'
          Branch Sides:
            - BranchSide:      'lib/json.c:136,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:139,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:142,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:145,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:148,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:152,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:152,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:155,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:158,5'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:158,5'
              BranchSideFuncs: []
            - BranchSide:      'lib/json.c:160,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    init_this_module_jsonrpc
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:39,1'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:39,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/jsonrpc.c:39,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/jsonrpc.c:39,1'
          Dst:             vlog_insert_module
    - functionName:    jsonrpc_recv_incomplete_init_coverage
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:41,1'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:41,1'
              BranchSideFuncs:
                - coverage_counter_register
            - BranchSide:      'lib/jsonrpc.c:41,1'
              BranchSideFuncs:
                - coverage_counter_register
      Callsites:
        - Src:             'lib/jsonrpc.c:41,1'
          Dst:             coverage_counter_register
    - functionName:    jsonrpc_recv_incomplete_count
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_jsonrpc_recv_incomplete_get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:41,1'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:41,1'
              BranchSideFuncs:
                - counter_jsonrpc_recv_incomplete_get
            - BranchSide:      'lib/jsonrpc.c:41,1'
              BranchSideFuncs:
                - counter_jsonrpc_recv_incomplete_get
      Callsites:
        - Src:             'lib/jsonrpc.c:41,1'
          Dst:             counter_jsonrpc_recv_incomplete_get
    - functionName:    counter_jsonrpc_recv_incomplete_get
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_jsonrpc_recv_incomplete_get_unsafe
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:41,1'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:41,1'
              BranchSideFuncs:
                - counter_jsonrpc_recv_incomplete_get_unsafe
            - BranchSide:      'lib/jsonrpc.c:41,1'
              BranchSideFuncs:
                - counter_jsonrpc_recv_incomplete_get_unsafe
      Callsites:
        - Src:             'lib/jsonrpc.c:41,1'
          Dst:             counter_jsonrpc_recv_incomplete_get_unsafe
    - functionName:    counter_jsonrpc_recv_incomplete_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    atomic_count_inc
      functionSourceFile: '/src/openvswitch/lib/ovs-atomic.h'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - count
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_insert
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - before
        - elem
      BBCount:         1
      ICount:          30
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_session_set_options
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1352
      functionLinenumberEnd: 1356
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - options
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - jsonrpc_session_set_dscp
        - jsonrpc_session_set_max_backoff
        - jsonrpc_session_set_probe_interval
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1353,5'
          Dst:             jsonrpc_session_set_max_backoff
        - Src:             'lib/jsonrpc.c:1354,5'
          Dst:             jsonrpc_session_set_probe_interval
        - Src:             'lib/jsonrpc.c:1355,5'
          Dst:             jsonrpc_session_set_dscp
    - functionName:    jsonrpc_session_set_max_backoff
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1314
      functionLinenumberEnd: 1316
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - s
        - max_backoff
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - reconnect_set_backoff
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1315,5'
          Dst:             reconnect_set_backoff
    - functionName:    jsonrpc_session_set_probe_interval
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1327
      functionLinenumberEnd: 1332
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - s
        - probe_interval
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_replay_is_active
        - reconnect_set_probe_interval
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:1328,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1329,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/jsonrpc.c:1331,34'
              BranchSideFuncs:
                - reconnect_set_probe_interval
      Callsites:
        - Src:             'lib/jsonrpc.c:1328,9'
          Dst:             ovs_replay_is_active
        - Src:             'lib/jsonrpc.c:1331,5'
          Dst:             reconnect_set_probe_interval
    - functionName:    jsonrpc_session_set_dscp
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1339
      functionLinenumberEnd: 1347
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - s
        - dscp
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - jsonrpc_session_force_reconnect
        - pstream_close
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:1340,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1340,9'
              BranchSideFuncs:
                - pstream_close
                - jsonrpc_session_force_reconnect
            - BranchSide:      'lib/jsonrpc.c:1341,23'
              BranchSideFuncs:
                - pstream_close
                - jsonrpc_session_force_reconnect
      Callsites:
        - Src:             'lib/jsonrpc.c:1341,9'
          Dst:             pstream_close
        - Src:             'lib/jsonrpc.c:1345,9'
          Dst:             jsonrpc_session_force_reconnect
    - functionName:    jsonrpc_session_force_reconnect
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1288
      functionLinenumberEnd: 1290
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - reconnect_force_reconnect
        - time_msec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1289,45'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1289,5'
          Dst:             reconnect_force_reconnect
    - functionName:    ovs_replay_is_active
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.h'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_replay_get_state
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/ovs-replay.h:67,12'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.h:67,12'
              BranchSideFuncs:
                - ovs_replay_get_state
            - BranchSide:      'lib/ovs-replay.h:67,12'
              BranchSideFuncs:
                - ovs_replay_get_state
      Callsites:
        - Src:             'lib/ovs-replay.h:67,12'
          Dst:             ovs_replay_get_state
    - functionName:    jsonrpc_session_reset_backoff
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1298
      functionLinenumberEnd: 1308
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - jsonrpc_session_is_connected
        - reconnect_set_backoff_free_tries
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:1301,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1301,9'
              BranchSideFuncs:
                - reconnect_set_backoff_free_tries
            - BranchSide:      'lib/jsonrpc.c:1305,19'
              BranchSideFuncs:
                - reconnect_set_backoff_free_tries
      Callsites:
        - Src:             'lib/jsonrpc.c:1301,9'
          Dst:             jsonrpc_session_is_connected
        - Src:             'lib/jsonrpc.c:1307,5'
          Dst:             reconnect_set_backoff_free_tries
    - functionName:    jsonrpc_session_is_connected
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1236
      functionLinenumberEnd: 1237
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_session_enable_reconnect
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1279
      functionLinenumberEnd: 1283
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - reconnect_set_backoff
        - reconnect_set_max_tries
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1280,5'
          Dst:             reconnect_set_max_tries
        - Src:             'lib/jsonrpc.c:1281,5'
          Dst:             reconnect_set_backoff
    - functionName:    jsonrpc_session_get_reconnect_stats
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1272
      functionLinenumberEnd: 1274
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - stats
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - reconnect_get_stats
        - time_msec
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1273,39'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1273,5'
          Dst:             reconnect_get_stats
    - functionName:    jsonrpc_session_get_last_error
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1264
      functionLinenumberEnd: 1265
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_session_get_status
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1255
      functionLinenumberEnd: 1256
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         9
      ICount:          40
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - jsonrpc_get_status
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:1256,14'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1256,17'
              BranchSideFuncs:
                - jsonrpc_get_status
            - BranchSide:      'lib/jsonrpc.c:1256,12'
              BranchSideFuncs: []
        - Branch String:   'lib/jsonrpc.c:1256,12'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1256,45'
              BranchSideFuncs:
                - jsonrpc_get_status
            - BranchSide:      'lib/jsonrpc.c:1256,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/jsonrpc.c:1256,26'
          Dst:             jsonrpc_get_status
    - functionName:    jsonrpc_get_status
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - rpc
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_session_get_seqno
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1246
      functionLinenumberEnd: 1247
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_session_is_alive
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1229
      functionLinenumberEnd: 1230
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         8
      ICount:          43
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - reconnect_get_max_tries
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:1230,19'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1230,19'
              BranchSideFuncs: []
            - BranchSide:      'lib/jsonrpc.c:1230,22'
              BranchSideFuncs:
                - reconnect_get_max_tries
        - Branch String:   'lib/jsonrpc.c:1230,32'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1230,32'
              BranchSideFuncs: []
            - BranchSide:      'lib/jsonrpc.c:1230,59'
              BranchSideFuncs:
                - reconnect_get_max_tries
      Callsites:
        - Src:             'lib/jsonrpc.c:1230,35'
          Dst:             reconnect_get_max_tries
    - functionName:    jsonrpc_session_recv_wait
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1220
      functionLinenumberEnd: 1224
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - jsonrpc_recv_wait
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:1221,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1221,9'
              BranchSideFuncs:
                - jsonrpc_recv_wait
            - BranchSide:      'lib/jsonrpc.c:1222,27'
              BranchSideFuncs:
                - jsonrpc_recv_wait
      Callsites:
        - Src:             'lib/jsonrpc.c:1222,9'
          Dst:             jsonrpc_recv_wait
    - functionName:    jsonrpc_recv_wait
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - rpc
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - byteq_is_empty
        - poll_immediate_wake_at
        - stream_recv_wait
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:404,21'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:404,41'
              BranchSideFuncs:
                - poll_immediate_wake_at
            - BranchSide:      'lib/jsonrpc.c:405,32'
              BranchSideFuncs:
                - poll_immediate_wake_at
        - Branch String:   'lib/jsonrpc.c:404,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:405,32'
              BranchSideFuncs:
                - stream_recv_wait
            - BranchSide:      'lib/jsonrpc.c:407,26'
              BranchSideFuncs:
                - stream_recv_wait
      Callsites:
        - Src:             'lib/jsonrpc.c:404,25'
          Dst:             byteq_is_empty
        - Src:             'lib/jsonrpc.c:405,9'
          Dst:             poll_immediate_wake_at
        - Src:             'lib/jsonrpc.c:407,9'
          Dst:             stream_recv_wait
    - functionName:    jsonrpc_session_recv
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1179
      functionLinenumberEnd: 1216
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         29
      ICount:          171
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - json_clone
        - json_string
        - jsonrpc_create_reply
        - jsonrpc_get_received_bytes
        - jsonrpc_msg_destroy
        - jsonrpc_recv
        - jsonrpc_session_send
        - reconnect_activity
        - reconnect_receive_attempted
        - strcmp
        - time_msec
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:1180,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1184,53'
              BranchSideFuncs:
                - jsonrpc_get_received_bytes
                - jsonrpc_recv
                - time_msec
                - reconnect_receive_attempted
                - jsonrpc_get_received_bytes
                - json_string
                - strcmp
                - jsonrpc_msg_destroy
                - strcmp
                - json_clone.337
                - jsonrpc_create_reply
                - jsonrpc_session_send
                - reconnect_activity
            - BranchSide:      'lib/jsonrpc.c:1215,5'
              BranchSideFuncs: []
        - Branch String:   'lib/jsonrpc.c:1189,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1195,32'
              BranchSideFuncs:
                - reconnect_activity
                - json_string
                - strcmp
                - jsonrpc_msg_destroy
                - strcmp
                - json_clone.337
                - jsonrpc_create_reply
                - jsonrpc_session_send
            - BranchSide:      'lib/jsonrpc.c:1198,13'
              BranchSideFuncs:
                - json_string
                - strcmp
                - jsonrpc_msg_destroy
                - strcmp
                - json_clone.337
                - jsonrpc_create_reply
                - jsonrpc_session_send
        - Branch String:   'lib/jsonrpc.c:1198,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1199,17'
              BranchSideFuncs:
                - json_string
                - strcmp
                - jsonrpc_msg_destroy
                - strcmp
                - json_clone.337
                - jsonrpc_create_reply
                - jsonrpc_session_send
            - BranchSide:      'lib/jsonrpc.c:1214,5'
              BranchSideFuncs: []
        - Branch String:   'lib/jsonrpc.c:1199,46'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1199,57'
              BranchSideFuncs:
                - strcmp
                - json_clone.337
                - jsonrpc_create_reply
                - jsonrpc_session_send
                - jsonrpc_msg_destroy
                - json_string
                - strcmp
            - BranchSide:      'lib/jsonrpc.c:1205,24'
              BranchSideFuncs:
                - json_string
                - strcmp
                - jsonrpc_msg_destroy
        - Branch String:   'lib/jsonrpc.c:1199,17'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1203,57'
              BranchSideFuncs:
                - json_string
                - strcmp
                - jsonrpc_msg_destroy
            - BranchSide:      'lib/jsonrpc.c:1205,24'
              BranchSideFuncs:
                - json_string
                - strcmp
                - jsonrpc_msg_destroy
        - Branch String:   'lib/jsonrpc.c:1206,24'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1206,27'
              BranchSideFuncs:
                - json_string
                - strcmp
                - jsonrpc_msg_destroy
            - BranchSide:      'lib/jsonrpc.c:1210,24'
              BranchSideFuncs: []
        - Branch String:   'lib/jsonrpc.c:1206,35'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1206,38'
              BranchSideFuncs:
                - json_string
                - strcmp
                - jsonrpc_msg_destroy
            - BranchSide:      'lib/jsonrpc.c:1210,24'
              BranchSideFuncs: []
        - Branch String:   'lib/jsonrpc.c:1207,24'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1207,47'
              BranchSideFuncs:
                - json_string
                - strcmp
                - jsonrpc_msg_destroy
            - BranchSide:      'lib/jsonrpc.c:1210,24'
              BranchSideFuncs: []
        - Branch String:   'lib/jsonrpc.c:1205,24'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1209,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/jsonrpc.c:1210,24'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/jsonrpc.c:1184,26'
          Dst:             jsonrpc_get_received_bytes
        - Src:             'lib/jsonrpc.c:1185,9'
          Dst:             jsonrpc_recv
        - Src:             'lib/jsonrpc.c:1187,29'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1188,9'
          Dst:             reconnect_receive_attempted
        - Src:             'lib/jsonrpc.c:1189,31'
          Dst:             jsonrpc_get_received_bytes
        - Src:             'lib/jsonrpc.c:1195,13'
          Dst:             reconnect_activity
        - Src:             'lib/jsonrpc.c:1199,50'
          Dst:             strcmp
        - Src:             'lib/jsonrpc.c:1203,46'
          Dst:             json_clone
        - Src:             'lib/jsonrpc.c:1203,25'
          Dst:             jsonrpc_create_reply
        - Src:             'lib/jsonrpc.c:1204,17'
          Dst:             jsonrpc_session_send
        - Src:             'lib/jsonrpc.c:1207,35'
          Dst:             json_string
        - Src:             'lib/jsonrpc.c:1207,28'
          Dst:             strcmp
        - Src:             'lib/jsonrpc.c:1212,13'
          Dst:             jsonrpc_msg_destroy
    - functionName:    jsonrpc_get_received_bytes
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - rpc
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_recv
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - rpc
        - msgp
      BBCount:         38
      ICount:          267
      EdgeCount:       50
      CyclomaticComplexity: 14
      functionsReached:
        - byteq_advance_head
        - byteq_advance_tail
        - byteq_fast_forward
        - byteq_head
        - byteq_headroom
        - byteq_is_empty
        - byteq_tail
        - byteq_tailroom
        - json_parser_create
        - json_parser_feed
        - json_parser_is_done
        - jsonrpc_error
        - jsonrpc_parse_received_message
        - jsonrpc_recv_incomplete_add
        - ovs_strerror
        - stream_recv
        - stream_report_content
        - vlog_rate_limit
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:334,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:335,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/jsonrpc.c:338,12'
              BranchSideFuncs:
                - jsonrpc_recv_incomplete_add
                - byteq_is_empty
                - json_parser_create
                - byteq_tailroom
                - byteq_tail
                - json_parser_feed
                - byteq_advance_tail
                - json_parser_is_done
                - jsonrpc_parse_received_message
                - stream_report_content
                - byteq_fast_forward
                - byteq_headroom
                - byteq_head
                - stream_recv
                - byteq_advance_head
                - jsonrpc_error
                - jsonrpc_error
                - ovs_strerror
                - vlog_rate_limit
        - Branch String:   'lib/jsonrpc.c:338,5'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:342,29'
              BranchSideFuncs:
                - byteq_is_empty
                - json_parser_create
                - byteq_tailroom
                - byteq_tail
                - json_parser_feed
                - byteq_advance_tail
                - json_parser_is_done
                - jsonrpc_recv_incomplete_add
                - jsonrpc_parse_received_message
                - stream_report_content
                - byteq_fast_forward
                - byteq_headroom
                - byteq_head
                - stream_recv
                - byteq_advance_head
                - jsonrpc_error
                - jsonrpc_error
                - ovs_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/jsonrpc.c:394,5'
              BranchSideFuncs:
                - jsonrpc_recv_incomplete_add
        - Branch String:   'lib/jsonrpc.c:342,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:346,33'
              BranchSideFuncs:
                - byteq_fast_forward
                - byteq_headroom
                - byteq_head
                - stream_recv
                - byteq_advance_head
                - json_parser_create
                - byteq_tailroom
                - byteq_tail
                - json_parser_feed
                - byteq_advance_tail
                - json_parser_is_done
                - jsonrpc_recv_incomplete_add
                - byteq_is_empty
                - jsonrpc_parse_received_message
                - stream_report_content
                - jsonrpc_error
                - jsonrpc_error
                - ovs_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/jsonrpc.c:366,14'
              BranchSideFuncs:
                - json_parser_create
                - byteq_tailroom
                - byteq_tail
                - json_parser_feed
                - byteq_advance_tail
                - json_parser_is_done
                - jsonrpc_recv_incomplete_add
                - byteq_is_empty
                - byteq_fast_forward
                - byteq_headroom
                - byteq_head
                - stream_recv
                - byteq_advance_head
                - jsonrpc_error
                - jsonrpc_error
                - ovs_strerror
                - vlog_rate_limit
                - jsonrpc_parse_received_message
                - stream_report_content
        - Branch String:   'lib/jsonrpc.c:349,17'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:350,21'
              BranchSideFuncs:
                - jsonrpc_error
                - ovs_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/jsonrpc.c:358,24'
              BranchSideFuncs:
                - byteq_advance_head
                - json_parser_create
                - byteq_tailroom
                - byteq_tail
                - json_parser_feed
                - byteq_advance_tail
                - json_parser_is_done
                - jsonrpc_recv_incomplete_add
                - byteq_is_empty
                - byteq_fast_forward
                - byteq_headroom
                - byteq_head
                - stream_recv
                - jsonrpc_error
                - ovs_strerror
                - vlog_rate_limit
                - jsonrpc_parse_received_message
                - stream_report_content
                - jsonrpc_error
        - Branch String:   'lib/jsonrpc.c:350,21'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:351,21'
              BranchSideFuncs: []
            - BranchSide:      'lib/jsonrpc.c:353,21'
              BranchSideFuncs:
                - jsonrpc_error
                - ovs_strerror
                - vlog_rate_limit
        - Branch String:   'lib/jsonrpc.c:353,21'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:353,21'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_rate_limit
                - jsonrpc_error
            - BranchSide:      'lib/jsonrpc.c:355,35'
              BranchSideFuncs:
                - jsonrpc_error
        - Branch String:   'lib/jsonrpc.c:366,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:367,27'
              BranchSideFuncs:
                - byteq_tailroom
                - byteq_tail
                - json_parser_feed
                - byteq_advance_tail
                - json_parser_is_done
                - jsonrpc_recv_incomplete_add
                - byteq_is_empty
                - json_parser_create
                - byteq_fast_forward
                - byteq_headroom
                - byteq_head
                - stream_recv
                - byteq_advance_head
                - jsonrpc_error
                - jsonrpc_error
                - ovs_strerror
                - vlog_rate_limit
                - jsonrpc_parse_received_message
                - stream_report_content
            - BranchSide:      'lib/jsonrpc.c:369,29'
              BranchSideFuncs:
                - byteq_tailroom
                - byteq_tail
                - json_parser_feed
                - byteq_advance_tail
                - json_parser_is_done
                - jsonrpc_recv_incomplete_add
                - byteq_is_empty
                - json_parser_create
                - byteq_fast_forward
                - byteq_headroom
                - byteq_head
                - stream_recv
                - byteq_advance_head
                - jsonrpc_error
                - jsonrpc_error
                - ovs_strerror
                - vlog_rate_limit
                - jsonrpc_parse_received_message
                - stream_report_content
        - Branch String:   'lib/jsonrpc.c:375,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:376,52'
              BranchSideFuncs:
                - jsonrpc_parse_received_message
                - jsonrpc_recv_incomplete_add
                - byteq_is_empty
                - json_parser_create
                - byteq_tailroom
                - byteq_tail
                - json_parser_feed
                - byteq_advance_tail
                - json_parser_is_done
                - byteq_fast_forward
                - byteq_headroom
                - byteq_head
                - stream_recv
                - byteq_advance_head
                - jsonrpc_error
                - jsonrpc_error
                - ovs_strerror
                - vlog_rate_limit
                - stream_report_content
            - BranchSide:      'lib/jsonrpc.c:390,5'
              BranchSideFuncs:
                - jsonrpc_recv_incomplete_add
                - byteq_is_empty
                - json_parser_create
                - byteq_tailroom
                - byteq_tail
                - json_parser_feed
                - byteq_advance_tail
                - json_parser_is_done
                - jsonrpc_parse_received_message
                - stream_report_content
                - byteq_fast_forward
                - byteq_headroom
                - byteq_head
                - stream_recv
                - byteq_advance_head
                - jsonrpc_error
                - jsonrpc_error
                - ovs_strerror
                - vlog_rate_limit
        - Branch String:   'lib/jsonrpc.c:377,17'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:378,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/jsonrpc.c:381,17'
              BranchSideFuncs:
                - jsonrpc_recv_incomplete_add
                - byteq_is_empty
                - json_parser_create
                - byteq_tailroom
                - byteq_tail
                - json_parser_feed
                - byteq_advance_tail
                - json_parser_is_done
                - jsonrpc_parse_received_message
                - byteq_fast_forward
                - byteq_headroom
                - byteq_head
                - stream_recv
                - byteq_advance_head
                - jsonrpc_error
                - jsonrpc_error
                - ovs_strerror
                - vlog_rate_limit
                - stream_report_content
        - Branch String:   'lib/jsonrpc.c:381,17'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:382,42'
              BranchSideFuncs:
                - stream_report_content
            - BranchSide:      'lib/jsonrpc.c:389,9'
              BranchSideFuncs:
                - jsonrpc_recv_incomplete_add
                - byteq_is_empty
                - json_parser_create
                - byteq_tailroom
                - byteq_tail
                - json_parser_feed
                - byteq_advance_tail
                - json_parser_is_done
                - jsonrpc_parse_received_message
                - stream_report_content
                - byteq_fast_forward
                - byteq_headroom
                - byteq_head
                - stream_recv
                - byteq_advance_head
                - jsonrpc_error
                - jsonrpc_error
                - ovs_strerror
                - vlog_rate_limit
        - Branch String:   'lib/jsonrpc.c:383,21'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:384,43'
              BranchSideFuncs:
                - stream_report_content
            - BranchSide:      'lib/jsonrpc.c:387,24'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/jsonrpc.c:342,13'
          Dst:             byteq_is_empty
        - Src:             'lib/jsonrpc.c:346,13'
          Dst:             byteq_fast_forward
        - Src:             'lib/jsonrpc.c:347,21'
          Dst:             byteq_headroom
        - Src:             'lib/jsonrpc.c:348,47'
          Dst:             byteq_head
        - Src:             'lib/jsonrpc.c:348,22'
          Dst:             stream_recv
        - Src:             'lib/jsonrpc.c:353,21'
          Dst:             ovs_strerror
        - Src:             'lib/jsonrpc.c:353,21'
          Dst:             vlog_rate_limit
        - Src:             'lib/jsonrpc.c:355,21'
          Dst:             jsonrpc_error
        - Src:             'lib/jsonrpc.c:359,17'
          Dst:             jsonrpc_error
        - Src:             'lib/jsonrpc.c:362,13'
          Dst:             byteq_advance_head
        - Src:             'lib/jsonrpc.c:367,27'
          Dst:             json_parser_create
        - Src:             'lib/jsonrpc.c:369,13'
          Dst:             byteq_tailroom
        - Src:             'lib/jsonrpc.c:371,42'
          Dst:             byteq_tail
        - Src:             'lib/jsonrpc.c:370,16'
          Dst:             json_parser_feed
        - Src:             'lib/jsonrpc.c:372,9'
          Dst:             byteq_advance_tail
        - Src:             'lib/jsonrpc.c:375,13'
          Dst:             json_parser_is_done
        - Src:             'lib/jsonrpc.c:376,21'
          Dst:             jsonrpc_parse_received_message
        - Src:             'lib/jsonrpc.c:384,21'
          Dst:             stream_report_content
        - Src:             'lib/jsonrpc.c:394,5'
          Dst:             jsonrpc_recv_incomplete_add
    - functionName:    json_clone
      functionSourceFile: '/src/openvswitch/./include/openvswitch/json.h'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - json_
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_create_reply
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 595
      functionLinenumberEnd: 597
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - result
        - id
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_clone
        - jsonrpc_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:597,28'
          Dst:             json_clone
        - Src:             'lib/jsonrpc.c:596,12'
          Dst:             jsonrpc_create
    - functionName:    jsonrpc_session_send
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1168
      functionLinenumberEnd: 1175
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - msg
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - jsonrpc_msg_destroy
        - jsonrpc_send
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:1169,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1170,29'
              BranchSideFuncs:
                - jsonrpc_send
            - BranchSide:      'lib/jsonrpc.c:1172,29'
              BranchSideFuncs:
                - jsonrpc_msg_destroy
      Callsites:
        - Src:             'lib/jsonrpc.c:1170,16'
          Dst:             jsonrpc_send
        - Src:             'lib/jsonrpc.c:1172,9'
          Dst:             jsonrpc_msg_destroy
    - functionName:    jsonrpc_msg_destroy
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 698
      functionLinenumberEnd: 707
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - m
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_destroy
      functionUses:    7
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:699,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:699,9'
              BranchSideFuncs:
                - free
                - json_destroy.338
                - json_destroy.338
                - json_destroy.338
                - json_destroy.338
                - free
            - BranchSide:      'lib/jsonrpc.c:700,14'
              BranchSideFuncs:
                - free
                - json_destroy.338
                - json_destroy.338
                - json_destroy.338
                - json_destroy.338
                - free
      Callsites:
        - Src:             'lib/jsonrpc.c:701,9'
          Dst:             json_destroy
        - Src:             'lib/jsonrpc.c:702,9'
          Dst:             json_destroy
        - Src:             'lib/jsonrpc.c:703,9'
          Dst:             json_destroy
        - Src:             'lib/jsonrpc.c:704,9'
          Dst:             json_destroy
    - functionName:    json_destroy
      functionSourceFile: '/src/openvswitch/./include/openvswitch/json.h'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
      BBCount:         8
      ICount:          39
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - json_destroy__
      functionUses:    12
      BranchProfiles:
        - Branch String:   './include/openvswitch/json.h:200,14'
          Branch Sides:
            - BranchSide:      './include/openvswitch/json.h:200,20'
              BranchSideFuncs:
                - json_destroy__
            - BranchSide:      './include/openvswitch/json.h:200,14'
              BranchSideFuncs: []
        - Branch String:   './include/openvswitch/json.h:200,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/json.h:200,9'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/json.h:201,24'
              BranchSideFuncs:
                - json_destroy__
      Callsites:
        - Src:             './include/openvswitch/json.h:201,9'
          Dst:             json_destroy__
    - functionName:    jsonrpc_send
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - rpc
        - msg
      BBCount:         41
      ICount:          270
      EdgeCount:       52
      CyclomaticComplexity: 13
      functionsReached:
        - json_destroy
        - json_to_ds
        - jsonrpc_error
        - jsonrpc_log_msg
        - jsonrpc_msg_destroy
        - jsonrpc_msg_to_json
        - jsonrpc_run
        - ofpbuf_use_ds
        - ovs_list_push_back
        - vlog
        - vlog_rate_limit
        - xmalloc
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:265,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:266,29'
              BranchSideFuncs:
                - jsonrpc_msg_destroy
            - BranchSide:      'lib/jsonrpc.c:270,21'
              BranchSideFuncs:
                - jsonrpc_log_msg
                - jsonrpc_msg_to_json
                - json_to_ds
                - json_destroy.338
                - xmalloc
                - ofpbuf_use_ds
                - ovs_list_push_back
                - jsonrpc_run
                - jsonrpc_error
                - vlog
                - vlog
                - vlog_rate_limit
        - Branch String:   'lib/jsonrpc.c:283,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:285,14'
              BranchSideFuncs:
                - jsonrpc_run
                - jsonrpc_error
                - vlog
                - vlog
                - vlog_rate_limit
            - BranchSide:      'lib/jsonrpc.c:306,9'
              BranchSideFuncs:
                - jsonrpc_run
        - Branch String:   'lib/jsonrpc.c:287,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:287,9'
              BranchSideFuncs:
                - vlog_rate_limit
                - jsonrpc_run
                - jsonrpc_error
                - vlog
                - vlog
            - BranchSide:      'lib/jsonrpc.c:290,13'
              BranchSideFuncs:
                - jsonrpc_run
                - jsonrpc_error
                - vlog
                - vlog
        - Branch String:   'lib/jsonrpc.c:290,29'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:290,32'
              BranchSideFuncs:
                - jsonrpc_run
                - jsonrpc_error
                - vlog
                - vlog
            - BranchSide:      'lib/jsonrpc.c:295,20'
              BranchSideFuncs:
                - jsonrpc_run
                - jsonrpc_error
                - vlog
        - Branch String:   'lib/jsonrpc.c:290,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:291,24'
              BranchSideFuncs:
                - jsonrpc_run
                - jsonrpc_error
                - vlog
            - BranchSide:      'lib/jsonrpc.c:295,20'
              BranchSideFuncs:
                - jsonrpc_run
                - jsonrpc_error
                - vlog
        - Branch String:   'lib/jsonrpc.c:292,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:292,13'
              BranchSideFuncs:
                - vlog
                - jsonrpc_run
                - jsonrpc_error
            - BranchSide:      'lib/jsonrpc.c:295,9'
              BranchSideFuncs:
                - jsonrpc_run
                - jsonrpc_error
        - Branch String:   'lib/jsonrpc.c:297,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:297,13'
              BranchSideFuncs:
                - vlog
                - jsonrpc_run
                - jsonrpc_error
            - BranchSide:      'lib/jsonrpc.c:300,9'
              BranchSideFuncs:
                - jsonrpc_run
                - jsonrpc_error
        - Branch String:   'lib/jsonrpc.c:301,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:302,27'
              BranchSideFuncs:
                - jsonrpc_error
                - jsonrpc_run
            - BranchSide:      'lib/jsonrpc.c:304,5'
              BranchSideFuncs:
                - jsonrpc_run
        - Branch String:   'lib/jsonrpc.c:306,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:307,21'
              BranchSideFuncs:
                - jsonrpc_run
            - BranchSide:      'lib/jsonrpc.c:309,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/jsonrpc.c:266,9'
          Dst:             jsonrpc_msg_destroy
        - Src:             'lib/jsonrpc.c:270,5'
          Dst:             jsonrpc_log_msg
        - Src:             'lib/jsonrpc.c:272,12'
          Dst:             jsonrpc_msg_to_json
        - Src:             'lib/jsonrpc.c:273,5'
          Dst:             json_to_ds
        - Src:             'lib/jsonrpc.c:275,5'
          Dst:             json_destroy
        - Src:             'lib/jsonrpc.c:277,11'
          Dst:             xmalloc
        - Src:             'lib/jsonrpc.c:278,5'
          Dst:             ofpbuf_use_ds
        - Src:             'lib/jsonrpc.c:279,5'
          Dst:             ovs_list_push_back
        - Src:             'lib/jsonrpc.c:287,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/jsonrpc.c:292,13'
          Dst:             vlog
        - Src:             'lib/jsonrpc.c:297,13'
          Dst:             vlog
        - Src:             'lib/jsonrpc.c:302,13'
          Dst:             jsonrpc_error
        - Src:             'lib/jsonrpc.c:307,9'
          Dst:             jsonrpc_run
    - functionName:    jsonrpc_log_msg
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - rpc
        - title
        - msg
      BBCount:         26
      ICount:          152
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - ds_cstr
        - ds_destroy
        - ds_put_cstr
        - ds_put_format
        - json_to_ds
        - jsonrpc_msg_type_to_string
        - vlog
        - vlog_is_enabled
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:221,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:221,9'
              BranchSideFuncs:
                - ds_destroy
                - jsonrpc_msg_type_to_string
                - ds_cstr
                - vlog
                - ds_put_cstr
                - json_to_ds
                - ds_put_cstr
                - json_to_ds
                - ds_put_cstr
                - json_to_ds
                - ds_put_cstr
                - json_to_ds
                - ds_put_format
            - BranchSide:      'lib/jsonrpc.c:222,19'
              BranchSideFuncs:
                - ds_destroy
                - jsonrpc_msg_type_to_string
                - ds_cstr
                - vlog
                - ds_put_cstr
                - json_to_ds
                - ds_put_cstr
                - json_to_ds
                - ds_put_cstr
                - json_to_ds
                - ds_put_cstr
                - json_to_ds
                - ds_put_format
        - Branch String:   'lib/jsonrpc.c:223,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:224,50'
              BranchSideFuncs:
                - ds_put_format
                - ds_destroy
                - jsonrpc_msg_type_to_string
                - ds_cstr
                - vlog
                - ds_put_cstr
                - json_to_ds
                - ds_put_cstr
                - json_to_ds
                - ds_put_cstr
                - json_to_ds
                - ds_put_cstr
                - json_to_ds
            - BranchSide:      'lib/jsonrpc.c:226,13'
              BranchSideFuncs:
                - ds_destroy
                - jsonrpc_msg_type_to_string
                - ds_cstr
                - vlog
                - ds_put_cstr
                - json_to_ds
                - ds_put_cstr
                - json_to_ds
                - ds_put_cstr
                - json_to_ds
                - ds_put_cstr
                - json_to_ds
        - Branch String:   'lib/jsonrpc.c:226,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:227,13'
              BranchSideFuncs:
                - ds_put_cstr
                - json_to_ds
                - ds_destroy
                - jsonrpc_msg_type_to_string
                - ds_cstr
                - vlog
                - ds_put_cstr
                - json_to_ds
                - ds_put_cstr
                - json_to_ds
                - ds_put_cstr
                - json_to_ds
            - BranchSide:      'lib/jsonrpc.c:230,13'
              BranchSideFuncs:
                - ds_destroy
                - jsonrpc_msg_type_to_string
                - ds_cstr
                - vlog
                - ds_put_cstr
                - json_to_ds
                - ds_put_cstr
                - json_to_ds
                - ds_put_cstr
                - json_to_ds
        - Branch String:   'lib/jsonrpc.c:230,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:231,13'
              BranchSideFuncs:
                - ds_put_cstr
                - json_to_ds
                - ds_destroy
                - jsonrpc_msg_type_to_string
                - ds_cstr
                - vlog
                - ds_put_cstr
                - json_to_ds
                - ds_put_cstr
                - json_to_ds
            - BranchSide:      'lib/jsonrpc.c:234,13'
              BranchSideFuncs:
                - ds_destroy
                - jsonrpc_msg_type_to_string
                - ds_cstr
                - vlog
                - ds_put_cstr
                - json_to_ds
                - ds_put_cstr
                - json_to_ds
        - Branch String:   'lib/jsonrpc.c:234,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:235,13'
              BranchSideFuncs:
                - ds_put_cstr
                - json_to_ds
                - ds_destroy
                - jsonrpc_msg_type_to_string
                - ds_cstr
                - vlog
                - ds_put_cstr
                - json_to_ds
            - BranchSide:      'lib/jsonrpc.c:238,13'
              BranchSideFuncs:
                - ds_destroy
                - jsonrpc_msg_type_to_string
                - ds_cstr
                - vlog
                - ds_put_cstr
                - json_to_ds
        - Branch String:   'lib/jsonrpc.c:238,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:239,13'
              BranchSideFuncs:
                - ds_put_cstr
                - json_to_ds
                - ds_destroy
                - jsonrpc_msg_type_to_string
                - ds_cstr
                - vlog
            - BranchSide:      'lib/jsonrpc.c:242,9'
              BranchSideFuncs:
                - ds_destroy
                - jsonrpc_msg_type_to_string
                - ds_cstr
                - vlog
        - Branch String:   'lib/jsonrpc.c:242,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:242,9'
              BranchSideFuncs:
                - jsonrpc_msg_type_to_string
                - ds_cstr
                - vlog
                - ds_destroy
            - BranchSide:      'lib/jsonrpc.c:244,9'
              BranchSideFuncs:
                - ds_destroy
      Callsites:
        - Src:             'lib/jsonrpc.c:221,9'
          Dst:             vlog_is_enabled
        - Src:             'lib/jsonrpc.c:224,13'
          Dst:             ds_put_format
        - Src:             'lib/jsonrpc.c:227,13'
          Dst:             ds_put_cstr
        - Src:             'lib/jsonrpc.c:228,13'
          Dst:             json_to_ds
        - Src:             'lib/jsonrpc.c:231,13'
          Dst:             ds_put_cstr
        - Src:             'lib/jsonrpc.c:232,13'
          Dst:             json_to_ds
        - Src:             'lib/jsonrpc.c:235,13'
          Dst:             ds_put_cstr
        - Src:             'lib/jsonrpc.c:236,13'
          Dst:             json_to_ds
        - Src:             'lib/jsonrpc.c:239,13'
          Dst:             ds_put_cstr
        - Src:             'lib/jsonrpc.c:240,13'
          Dst:             json_to_ds
        - Src:             'lib/jsonrpc.c:242,9'
          Dst:             jsonrpc_msg_type_to_string
        - Src:             'lib/jsonrpc.c:242,9'
          Dst:             ds_cstr
        - Src:             'lib/jsonrpc.c:242,9'
          Dst:             vlog
        - Src:             'lib/jsonrpc.c:244,9'
          Dst:             ds_destroy
    - functionName:    jsonrpc_msg_to_json
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 775
      functionLinenumberEnd: 806
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - m
      BBCount:         27
      ICount:          154
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - json_null_create
        - json_object_create
        - json_object_put
        - json_string_create_nocopy
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:778,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:779,25'
              BranchSideFuncs:
                - json_string_create_nocopy
                - json_object_put
                - free
                - json_null_create
                - json_object_put
                - json_object_put
                - json_null_create
                - json_object_put
                - json_object_put
                - json_null_create
                - json_object_put
                - json_object_put
                - json_object_put
            - BranchSide:      'lib/jsonrpc.c:782,9'
              BranchSideFuncs:
                - free
                - json_null_create
                - json_object_put
                - json_object_put
                - json_null_create
                - json_object_put
                - json_object_put
                - json_null_create
                - json_object_put
                - json_object_put
                - json_object_put
        - Branch String:   'lib/jsonrpc.c:782,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:783,25'
              BranchSideFuncs:
                - json_object_put
                - free
                - json_null_create
                - json_object_put
                - json_object_put
                - json_null_create
                - json_object_put
                - json_object_put
                - json_null_create
                - json_object_put
                - json_object_put
            - BranchSide:      'lib/jsonrpc.c:786,9'
              BranchSideFuncs:
                - free
                - json_null_create
                - json_object_put
                - json_object_put
                - json_null_create
                - json_object_put
                - json_object_put
                - json_null_create
                - json_object_put
                - json_object_put
        - Branch String:   'lib/jsonrpc.c:786,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:787,25'
              BranchSideFuncs:
                - json_object_put
                - free
                - json_null_create
                - json_object_put
                - json_object_put
                - json_null_create
                - json_object_put
                - json_object_put
            - BranchSide:      'lib/jsonrpc.c:788,16'
              BranchSideFuncs:
                - free
                - json_null_create
                - json_object_put
                - json_object_put
                - json_null_create
                - json_object_put
                - json_object_put
                - json_null_create
                - json_object_put
        - Branch String:   'lib/jsonrpc.c:792,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:793,25'
              BranchSideFuncs:
                - json_object_put
                - free
                - json_null_create
                - json_object_put
                - json_object_put
            - BranchSide:      'lib/jsonrpc.c:794,16'
              BranchSideFuncs:
                - free
                - json_null_create
                - json_object_put
                - json_object_put
                - json_null_create
                - json_object_put
        - Branch String:   'lib/jsonrpc.c:798,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:799,25'
              BranchSideFuncs:
                - json_object_put
                - free
            - BranchSide:      'lib/jsonrpc.c:800,16'
              BranchSideFuncs:
                - free
                - json_null_create
                - json_object_put
      Callsites:
        - Src:             'lib/jsonrpc.c:776,25'
          Dst:             json_object_create
        - Src:             'lib/jsonrpc.c:779,41'
          Dst:             json_string_create_nocopy
        - Src:             'lib/jsonrpc.c:779,9'
          Dst:             json_object_put
        - Src:             'lib/jsonrpc.c:783,9'
          Dst:             json_object_put
        - Src:             'lib/jsonrpc.c:787,9'
          Dst:             json_object_put
        - Src:             'lib/jsonrpc.c:789,41'
          Dst:             json_null_create
        - Src:             'lib/jsonrpc.c:789,9'
          Dst:             json_object_put
        - Src:             'lib/jsonrpc.c:793,9'
          Dst:             json_object_put
        - Src:             'lib/jsonrpc.c:795,40'
          Dst:             json_null_create
        - Src:             'lib/jsonrpc.c:795,9'
          Dst:             json_object_put
        - Src:             'lib/jsonrpc.c:799,9'
          Dst:             json_object_put
        - Src:             'lib/jsonrpc.c:801,37'
          Dst:             json_null_create
        - Src:             'lib/jsonrpc.c:801,9'
          Dst:             json_object_put
    - functionName:    ovs_list_push_back
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
        - elem
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:205,5'
          Dst:             ovs_list_insert
    - functionName:    jsonrpc_error
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 535
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - rpc
        - error
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - jsonrpc_cleanup
      functionUses:    7
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:531,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:531,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/jsonrpc.c:532,23'
              BranchSideFuncs:
                - jsonrpc_cleanup
      Callsites:
        - Src:             'lib/jsonrpc.c:533,9'
          Dst:             jsonrpc_cleanup
    - functionName:    jsonrpc_run
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - rpc
      BBCount:         23
      ICount:          149
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - jsonrpc_error
        - ofpbuf_delete
        - ofpbuf_from_list
        - ofpbuf_pull
        - ovs_list_front
        - ovs_list_is_empty
        - ovs_list_remove
        - ovs_strerror
        - stream_run
        - stream_send
        - vlog_rate_limit
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:120,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:121,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/jsonrpc.c:124,16'
              BranchSideFuncs:
                - stream_run
                - ovs_list_is_empty
                - ovs_list_front
                - ofpbuf_from_list
                - stream_send
                - jsonrpc_error
                - ovs_strerror
                - vlog_rate_limit
                - ofpbuf_pull
                - ovs_list_remove
                - ofpbuf_delete
        - Branch String:   'lib/jsonrpc.c:125,5'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:125,5'
              BranchSideFuncs:
                - ovs_list_front
                - ofpbuf_from_list
                - stream_send
                - jsonrpc_error
                - ovs_strerror
                - vlog_rate_limit
                - ofpbuf_pull
                - ovs_list_remove
                - ofpbuf_delete
                - ovs_list_is_empty
            - BranchSide:      'lib/jsonrpc.c:126,49'
              BranchSideFuncs:
                - ovs_list_front
                - ofpbuf_from_list
                - stream_send
                - jsonrpc_error
                - ovs_strerror
                - vlog_rate_limit
                - ofpbuf_pull
                - ovs_list_remove
                - ofpbuf_delete
                - ovs_list_is_empty
        - Branch String:   'lib/jsonrpc.c:131,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:132,29'
              BranchSideFuncs:
                - ofpbuf_pull
                - ovs_list_remove
                - ofpbuf_delete
                - ovs_list_is_empty
                - ovs_list_front
                - ofpbuf_from_list
                - stream_send
                - jsonrpc_error
                - ovs_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/jsonrpc.c:140,17'
              BranchSideFuncs:
                - jsonrpc_error
                - ovs_strerror
                - vlog_rate_limit
        - Branch String:   'lib/jsonrpc.c:134,17'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:135,33'
              BranchSideFuncs:
                - ovs_list_is_empty
                - ovs_list_front
                - ofpbuf_from_list
                - stream_send
                - jsonrpc_error
                - ovs_strerror
                - vlog_rate_limit
                - ofpbuf_pull
                - ovs_list_remove
                - ofpbuf_delete
            - BranchSide:      'lib/jsonrpc.c:139,9'
              BranchSideFuncs:
                - ovs_list_is_empty
                - ovs_list_front
                - ofpbuf_from_list
                - stream_send
                - jsonrpc_error
                - ovs_strerror
                - vlog_rate_limit
                - ofpbuf_pull
                - ovs_list_remove
                - ofpbuf_delete
        - Branch String:   'lib/jsonrpc.c:140,17'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:141,17'
              BranchSideFuncs:
                - jsonrpc_error
                - ovs_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/jsonrpc.c:145,13'
              BranchSideFuncs: []
        - Branch String:   'lib/jsonrpc.c:141,17'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:141,17'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_rate_limit
                - jsonrpc_error
            - BranchSide:      'lib/jsonrpc.c:143,31'
              BranchSideFuncs:
                - jsonrpc_error
      Callsites:
        - Src:             'lib/jsonrpc.c:124,5'
          Dst:             stream_run
        - Src:             'lib/jsonrpc.c:125,13'
          Dst:             ovs_list_is_empty
        - Src:             'lib/jsonrpc.c:126,33'
          Dst:             ovs_list_front
        - Src:             'lib/jsonrpc.c:127,30'
          Dst:             ofpbuf_from_list
        - Src:             'lib/jsonrpc.c:130,18'
          Dst:             stream_send
        - Src:             'lib/jsonrpc.c:133,13'
          Dst:             ofpbuf_pull
        - Src:             'lib/jsonrpc.c:135,17'
          Dst:             ovs_list_remove
        - Src:             'lib/jsonrpc.c:137,17'
          Dst:             ofpbuf_delete
        - Src:             'lib/jsonrpc.c:141,17'
          Dst:             ovs_strerror
        - Src:             'lib/jsonrpc.c:141,17'
          Dst:             vlog_rate_limit
        - Src:             'lib/jsonrpc.c:143,17'
          Dst:             jsonrpc_error
    - functionName:    ovs_list_is_empty
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_front
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 283
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list_
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_is_empty
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:286,5'
          Dst:             ovs_list_is_empty
    - functionName:    ofpbuf_from_list
      functionSourceFile: '/src/openvswitch/./include/openvswitch/ofpbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 280
      functionLinenumberEnd: 281
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ofpbuf_pull
      functionSourceFile: '/src/openvswitch/./include/openvswitch/ofpbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - size
      BBCount:         4
      ICount:          60
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/ofpbuf.h:262,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/ofpbuf.h:263,16'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/ofpbuf.h:266,22'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ovs_list_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - elem
      BBCount:         1
      ICount:          26
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ofpbuf_delete
      functionSourceFile: '/src/openvswitch/./include/openvswitch/ofpbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ofpbuf_uninit
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/ofpbuf.h:173,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/ofpbuf.h:173,9'
              BranchSideFuncs:
                - ofpbuf_uninit
                - free
            - BranchSide:      './include/openvswitch/ofpbuf.h:174,23'
              BranchSideFuncs:
                - ofpbuf_uninit
                - free
      Callsites:
        - Src:             './include/openvswitch/ofpbuf.h:174,9'
          Dst:             ofpbuf_uninit
    - functionName:    jsonrpc_cleanup
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 539
      functionLinenumberEnd: 549
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - rpc
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_parser_abort
        - ofpbuf_list_delete
        - stream_close
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:540,5'
          Dst:             stream_close
        - Src:             'lib/jsonrpc.c:543,5'
          Dst:             json_parser_abort
        - Src:             'lib/jsonrpc.c:546,5'
          Dst:             ofpbuf_list_delete
    - functionName:    jsonrpc_msg_type_to_string
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 619
      functionLinenumberEnd: 634
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - type
      BBCount:         7
      ICount:          38
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:620,5'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:622,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/jsonrpc.c:625,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/jsonrpc.c:628,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/jsonrpc.c:631,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/jsonrpc.c:633,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    jsonrpc_create
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 555
      functionLinenumberEnd: 563
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - type
        - method
        - params
        - result
        - error
        - id
      BBCount:         3
      ICount:          59
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - nullable_xstrdup
        - xmalloc
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:556,31'
          Dst:             xmalloc
        - Src:             'lib/jsonrpc.c:558,19'
          Dst:             nullable_xstrdup
    - functionName:    jsonrpc_parse_received_message
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 525
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - rpc
      BBCount:         18
      ICount:          118
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - json_destroy
        - json_parser_finish
        - json_string
        - jsonrpc_error
        - jsonrpc_log_msg
        - jsonrpc_msg_from_json
        - vlog_rate_limit
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:506,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:507,9'
              BranchSideFuncs:
                - jsonrpc_error
                - json_destroy.338
                - json_string
                - vlog_rate_limit
            - BranchSide:      'lib/jsonrpc.c:514,35'
              BranchSideFuncs:
                - jsonrpc_msg_from_json
                - jsonrpc_log_msg
                - free
                - jsonrpc_error
                - vlog_rate_limit
        - Branch String:   'lib/jsonrpc.c:507,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:507,9'
              BranchSideFuncs:
                - json_string
                - vlog_rate_limit
                - jsonrpc_error
                - json_destroy.338
            - BranchSide:      'lib/jsonrpc.c:509,23'
              BranchSideFuncs:
                - jsonrpc_error
                - json_destroy.338
        - Branch String:   'lib/jsonrpc.c:515,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:516,9'
              BranchSideFuncs:
                - free
                - jsonrpc_error
                - vlog_rate_limit
            - BranchSide:      'lib/jsonrpc.c:523,21'
              BranchSideFuncs:
                - jsonrpc_log_msg
        - Branch String:   'lib/jsonrpc.c:516,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:516,9'
              BranchSideFuncs:
                - vlog_rate_limit
                - free
                - jsonrpc_error
            - BranchSide:      'lib/jsonrpc.c:518,14'
              BranchSideFuncs:
                - free
                - jsonrpc_error
      Callsites:
        - Src:             'lib/jsonrpc.c:504,12'
          Dst:             json_parser_finish
        - Src:             'lib/jsonrpc.c:507,9'
          Dst:             json_string
        - Src:             'lib/jsonrpc.c:507,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/jsonrpc.c:509,9'
          Dst:             jsonrpc_error
        - Src:             'lib/jsonrpc.c:510,9'
          Dst:             json_destroy
        - Src:             'lib/jsonrpc.c:514,13'
          Dst:             jsonrpc_msg_from_json
        - Src:             'lib/jsonrpc.c:516,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/jsonrpc.c:519,9'
          Dst:             jsonrpc_error
        - Src:             'lib/jsonrpc.c:523,5'
          Dst:             jsonrpc_log_msg
    - functionName:    jsonrpc_recv_incomplete_add
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - n
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_jsonrpc_recv_incomplete_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:41,1'
          Dst:             counter_jsonrpc_recv_incomplete_get
    - functionName:    jsonrpc_msg_from_json
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 767
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
        - msgp
      BBCount:         27
      ICount:          196
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - json_destroy
        - json_object
        - json_string
        - jsonrpc_msg_destroy
        - jsonrpc_msg_is_valid
        - null_from_json_null
        - shash_find_and_delete
        - shash_first
        - shash_is_empty
        - xasprintf
        - xstrdup
        - xzalloc
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:727,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:728,17'
              BranchSideFuncs:
                - xstrdup
                - json_destroy.338
                - json_destroy.338
                - jsonrpc_msg_destroy
            - BranchSide:      'lib/jsonrpc.c:731,26'
              BranchSideFuncs:
                - json_object
                - shash_find_and_delete
                - xzalloc
                - shash_find_and_delete
                - null_from_json_null
                - shash_find_and_delete
                - null_from_json_null
                - shash_find_and_delete
                - null_from_json_null
                - shash_find_and_delete
                - null_from_json_null
                - shash_is_empty
                - shash_first
                - xasprintf
                - json_destroy.338
                - json_destroy.338
                - jsonrpc_msg_destroy
                - jsonrpc_msg_is_valid
                - json_string
                - xstrdup
                - xstrdup
        - Branch String:   'lib/jsonrpc.c:734,16'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:734,19'
              BranchSideFuncs:
                - xzalloc
                - shash_find_and_delete
                - null_from_json_null
                - shash_find_and_delete
                - null_from_json_null
                - shash_find_and_delete
                - null_from_json_null
                - shash_find_and_delete
                - null_from_json_null
                - shash_is_empty
                - shash_first
                - xasprintf
                - json_destroy.338
                - json_destroy.338
                - jsonrpc_msg_destroy
                - jsonrpc_msg_is_valid
                - json_string
                - xstrdup
                - xstrdup
            - BranchSide:      'lib/jsonrpc.c:739,11'
              BranchSideFuncs:
                - xzalloc
                - shash_find_and_delete
                - null_from_json_null
                - shash_find_and_delete
                - null_from_json_null
                - shash_find_and_delete
                - null_from_json_null
                - shash_find_and_delete
                - null_from_json_null
                - shash_is_empty
                - shash_first
                - xasprintf
                - json_destroy.338
                - json_destroy.338
                - jsonrpc_msg_destroy
                - jsonrpc_msg_is_valid
                - json_string
                - xstrdup
        - Branch String:   'lib/jsonrpc.c:734,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:735,17'
              BranchSideFuncs:
                - xstrdup
                - json_destroy.338
                - json_destroy.338
                - jsonrpc_msg_destroy
            - BranchSide:      'lib/jsonrpc.c:739,11'
              BranchSideFuncs:
                - xzalloc
                - shash_find_and_delete
                - null_from_json_null
                - shash_find_and_delete
                - null_from_json_null
                - shash_find_and_delete
                - null_from_json_null
                - shash_find_and_delete
                - null_from_json_null
                - shash_is_empty
                - shash_first
                - xasprintf
                - json_destroy.338
                - json_destroy.338
                - jsonrpc_msg_destroy
                - jsonrpc_msg_is_valid
                - json_string
                - xstrdup
        - Branch String:   'lib/jsonrpc.c:740,19'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:740,48'
              BranchSideFuncs:
                - json_string
                - xstrdup
                - shash_find_and_delete
                - null_from_json_null
                - shash_find_and_delete
                - null_from_json_null
                - shash_find_and_delete
                - null_from_json_null
                - shash_find_and_delete
                - null_from_json_null
                - shash_is_empty
                - shash_first
                - xasprintf
                - json_destroy.338
                - json_destroy.338
                - jsonrpc_msg_destroy
                - jsonrpc_msg_is_valid
            - BranchSide:      'lib/jsonrpc.c:740,5'
              BranchSideFuncs:
                - shash_find_and_delete
                - null_from_json_null
                - shash_find_and_delete
                - null_from_json_null
                - shash_find_and_delete
                - null_from_json_null
                - shash_find_and_delete
                - null_from_json_null
                - shash_is_empty
                - shash_first
                - xasprintf
                - json_destroy.338
                - json_destroy.338
                - jsonrpc_msg_destroy
                - jsonrpc_msg_is_valid
        - Branch String:   'lib/jsonrpc.c:745,18'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:745,5'
              BranchSideFuncs:
                - shash_is_empty
                - shash_first
                - xasprintf
                - json_destroy.338
                - json_destroy.338
                - jsonrpc_msg_destroy
                - jsonrpc_msg_is_valid
            - BranchSide:      'lib/jsonrpc.c:746,20'
              BranchSideFuncs:
                - shash_is_empty
                - shash_first
                - xasprintf
                - json_destroy.338
                - json_destroy.338
                - jsonrpc_msg_destroy
                - jsonrpc_msg_is_valid
        - Branch String:   'lib/jsonrpc.c:746,20'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:745,18'
              BranchSideFuncs:
                - shash_is_empty
                - shash_first
                - xasprintf
                - json_destroy.338
                - json_destroy.338
                - jsonrpc_msg_destroy
                - jsonrpc_msg_is_valid
            - BranchSide:      'lib/jsonrpc.c:747,20'
              BranchSideFuncs:
                - shash_is_empty
                - shash_first
                - xasprintf
                - json_destroy.338
                - json_destroy.338
                - jsonrpc_msg_destroy
                - jsonrpc_msg_is_valid
        - Branch String:   'lib/jsonrpc.c:749,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:751,39'
              BranchSideFuncs:
                - jsonrpc_msg_is_valid
                - json_destroy.338
                - json_destroy.338
                - jsonrpc_msg_destroy
            - BranchSide:      'lib/jsonrpc.c:754,34'
              BranchSideFuncs:
                - jsonrpc_msg_is_valid
                - json_destroy.338
                - json_destroy.338
                - jsonrpc_msg_destroy
        - Branch String:   'lib/jsonrpc.c:755,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:755,9'
              BranchSideFuncs:
                - json_destroy.338
                - json_destroy.338
                - jsonrpc_msg_destroy
            - BranchSide:      'lib/jsonrpc.c:756,9'
              BranchSideFuncs:
                - json_destroy.338
                - json_destroy.338
                - jsonrpc_msg_destroy
        - Branch String:   'lib/jsonrpc.c:762,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:762,9'
              BranchSideFuncs:
                - jsonrpc_msg_destroy
            - BranchSide:      'lib/jsonrpc.c:763,29'
              BranchSideFuncs:
                - jsonrpc_msg_destroy
      Callsites:
        - Src:             'lib/jsonrpc.c:728,17'
          Dst:             xstrdup
        - Src:             'lib/jsonrpc.c:731,14'
          Dst:             json_object
        - Src:             'lib/jsonrpc.c:733,14'
          Dst:             shash_find_and_delete
        - Src:             'lib/jsonrpc.c:735,17'
          Dst:             xstrdup
        - Src:             'lib/jsonrpc.c:739,11'
          Dst:             xzalloc
        - Src:             'lib/jsonrpc.c:740,36'
          Dst:             json_string
        - Src:             'lib/jsonrpc.c:740,28'
          Dst:             xstrdup
        - Src:             'lib/jsonrpc.c:741,39'
          Dst:             shash_find_and_delete
        - Src:             'lib/jsonrpc.c:741,19'
          Dst:             null_from_json_null
        - Src:             'lib/jsonrpc.c:742,39'
          Dst:             shash_find_and_delete
        - Src:             'lib/jsonrpc.c:742,19'
          Dst:             null_from_json_null
        - Src:             'lib/jsonrpc.c:743,38'
          Dst:             shash_find_and_delete
        - Src:             'lib/jsonrpc.c:743,18'
          Dst:             null_from_json_null
        - Src:             'lib/jsonrpc.c:744,35'
          Dst:             shash_find_and_delete
        - Src:             'lib/jsonrpc.c:744,15'
          Dst:             null_from_json_null
        - Src:             'lib/jsonrpc.c:749,10'
          Dst:             shash_is_empty
        - Src:             'lib/jsonrpc.c:751,27'
          Dst:             shash_first
        - Src:             'lib/jsonrpc.c:750,17'
          Dst:             xasprintf
        - Src:             'lib/jsonrpc.c:754,13'
          Dst:             jsonrpc_msg_is_valid
        - Src:             'lib/jsonrpc.c:760,5'
          Dst:             json_destroy
        - Src:             'lib/jsonrpc.c:761,5'
          Dst:             json_destroy
        - Src:             'lib/jsonrpc.c:763,9'
          Dst:             jsonrpc_msg_destroy
    - functionName:    null_from_json_null
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 711
      functionLinenumberEnd: 717
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
      BBCount:         9
      ICount:          43
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - json_destroy
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:712,14'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:712,17'
              BranchSideFuncs:
                - json_destroy.338
            - BranchSide:      'lib/jsonrpc.c:716,12'
              BranchSideFuncs: []
        - Branch String:   'lib/jsonrpc.c:712,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:713,22'
              BranchSideFuncs:
                - json_destroy.338
            - BranchSide:      'lib/jsonrpc.c:716,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/jsonrpc.c:713,9'
          Dst:             json_destroy
    - functionName:    jsonrpc_msg_is_valid
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 638
      functionLinenumberEnd: 694
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - m
      BBCount:         25
      ICount:          222
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - jsonrpc_msg_type_to_string
        - xasprintf
        - xstrdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:642,19'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:642,22'
              BranchSideFuncs:
                - jsonrpc_msg_type_to_string
                - xasprintf
                - xasprintf
                - xasprintf
                - xasprintf
                - xasprintf
                - xasprintf
                - xstrdup
            - BranchSide:      'lib/jsonrpc.c:646,13'
              BranchSideFuncs:
                - jsonrpc_msg_type_to_string
                - xasprintf
                - xasprintf
                - xasprintf
                - xasprintf
                - xasprintf
                - xasprintf
        - Branch String:   'lib/jsonrpc.c:642,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:643,16'
              BranchSideFuncs:
                - xstrdup
            - BranchSide:      'lib/jsonrpc.c:646,13'
              BranchSideFuncs:
                - jsonrpc_msg_type_to_string
                - xasprintf
                - xasprintf
                - xasprintf
                - xasprintf
                - xasprintf
                - xasprintf
        - Branch String:   'lib/jsonrpc.c:646,5'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:648,17'
              BranchSideFuncs:
                - jsonrpc_msg_type_to_string
                - xasprintf
                - xasprintf
                - xasprintf
                - xasprintf
                - xasprintf
            - BranchSide:      'lib/jsonrpc.c:652,17'
              BranchSideFuncs:
                - jsonrpc_msg_type_to_string
                - xasprintf
                - xasprintf
                - xasprintf
                - xasprintf
                - xasprintf
            - BranchSide:      'lib/jsonrpc.c:656,17'
              BranchSideFuncs:
                - jsonrpc_msg_type_to_string
                - xasprintf
                - xasprintf
                - xasprintf
                - xasprintf
                - xasprintf
            - BranchSide:      'lib/jsonrpc.c:660,17'
              BranchSideFuncs:
                - jsonrpc_msg_type_to_string
                - xasprintf
                - xasprintf
                - xasprintf
                - xasprintf
                - xasprintf
            - BranchSide:      'lib/jsonrpc.c:664,62'
              BranchSideFuncs:
                - xasprintf
        - Branch String:   'lib/jsonrpc.c:668,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:670,26'
              BranchSideFuncs:
                - xasprintf
            - BranchSide:      'lib/jsonrpc.c:673,10'
              BranchSideFuncs:
                - xasprintf
                - xasprintf
                - xasprintf
                - xasprintf
        - Branch String:   'lib/jsonrpc.c:673,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:675,26'
              BranchSideFuncs:
                - xasprintf
            - BranchSide:      'lib/jsonrpc.c:678,10'
              BranchSideFuncs:
                - xasprintf
                - xasprintf
                - xasprintf
        - Branch String:   'lib/jsonrpc.c:678,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:680,26'
              BranchSideFuncs:
                - xasprintf
            - BranchSide:      'lib/jsonrpc.c:683,10'
              BranchSideFuncs:
                - xasprintf
                - xasprintf
        - Branch String:   'lib/jsonrpc.c:683,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:685,26'
              BranchSideFuncs:
                - xasprintf
            - BranchSide:      'lib/jsonrpc.c:688,10'
              BranchSideFuncs:
                - xasprintf
        - Branch String:   'lib/jsonrpc.c:688,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:690,26'
              BranchSideFuncs:
                - xasprintf
            - BranchSide:      'lib/jsonrpc.c:693,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/jsonrpc.c:643,16'
          Dst:             xstrdup
        - Src:             'lib/jsonrpc.c:664,16'
          Dst:             xasprintf
        - Src:             'lib/jsonrpc.c:667,17'
          Dst:             jsonrpc_msg_type_to_string
        - Src:             'lib/jsonrpc.c:669,16'
          Dst:             xasprintf
        - Src:             'lib/jsonrpc.c:674,16'
          Dst:             xasprintf
        - Src:             'lib/jsonrpc.c:679,16'
          Dst:             xasprintf
        - Src:             'lib/jsonrpc.c:684,16'
          Dst:             xasprintf
        - Src:             'lib/jsonrpc.c:689,16'
          Dst:             xasprintf
    - functionName:    jsonrpc_session_get_n_remotes
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1161
      functionLinenumberEnd: 1162
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_session_get_id
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1151
      functionLinenumberEnd: 1157
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - stream_get_peer_id
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:1152,16'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1152,19'
              BranchSideFuncs:
                - stream_get_peer_id
            - BranchSide:      'lib/jsonrpc.c:1155,9'
              BranchSideFuncs: []
        - Branch String:   'lib/jsonrpc.c:1152,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1153,35'
              BranchSideFuncs:
                - stream_get_peer_id
            - BranchSide:      'lib/jsonrpc.c:1155,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/jsonrpc.c:1153,16'
          Dst:             stream_get_peer_id
    - functionName:    jsonrpc_session_get_name
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1145
      functionLinenumberEnd: 1146
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - reconnect_get_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:1146,12'
          Dst:             reconnect_get_name
    - functionName:    jsonrpc_session_get_backlog
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1137
      functionLinenumberEnd: 1138
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - jsonrpc_get_backlog
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:1138,12'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1138,41'
              BranchSideFuncs:
                - jsonrpc_get_backlog
            - BranchSide:      'lib/jsonrpc.c:1138,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/jsonrpc.c:1138,21'
          Dst:             jsonrpc_get_backlog
    - functionName:    jsonrpc_get_backlog
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - rpc
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:187,12'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:187,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/jsonrpc.c:187,30'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    jsonrpc_session_wait
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1122
      functionLinenumberEnd: 1133
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         12
      ICount:          71
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - jsonrpc_wait
        - pstream_wait
        - reconnect_wait
        - stream_connect_wait
        - stream_run_wait
        - time_msec
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:1123,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1124,22'
              BranchSideFuncs:
                - jsonrpc_wait
                - time_msec
                - reconnect_wait
                - pstream_wait
            - BranchSide:      'lib/jsonrpc.c:1125,16'
              BranchSideFuncs:
                - time_msec
                - reconnect_wait
                - pstream_wait
                - stream_run_wait
                - stream_connect_wait
        - Branch String:   'lib/jsonrpc.c:1129,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1129,9'
              BranchSideFuncs:
                - pstream_wait
                - time_msec
                - reconnect_wait
            - BranchSide:      'lib/jsonrpc.c:1130,22'
              BranchSideFuncs:
                - pstream_wait
                - time_msec
                - reconnect_wait
      Callsites:
        - Src:             'lib/jsonrpc.c:1124,9'
          Dst:             jsonrpc_wait
        - Src:             'lib/jsonrpc.c:1126,9'
          Dst:             stream_run_wait
        - Src:             'lib/jsonrpc.c:1127,9'
          Dst:             stream_connect_wait
        - Src:             'lib/jsonrpc.c:1130,9'
          Dst:             pstream_wait
        - Src:             'lib/jsonrpc.c:1132,34'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1132,5'
          Dst:             reconnect_wait
    - functionName:    jsonrpc_wait
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - rpc
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_list_is_empty
        - stream_run_wait
        - stream_send_wait
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:155,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:155,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/jsonrpc.c:156,25'
              BranchSideFuncs:
                - stream_run_wait
                - ovs_list_is_empty
                - stream_send_wait
        - Branch String:   'lib/jsonrpc.c:157,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:158,30'
              BranchSideFuncs: []
            - BranchSide:      'lib/jsonrpc.c:160,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/jsonrpc.c:156,9'
          Dst:             stream_run_wait
        - Src:             'lib/jsonrpc.c:157,14'
          Dst:             ovs_list_is_empty
        - Src:             'lib/jsonrpc.c:158,13'
          Dst:             stream_send_wait
    - functionName:    jsonrpc_session_connect
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 997
      functionLinenumberEnd: 1021
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         18
      ICount:          120
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - jsonrpc_pstream_open
        - jsonrpc_session_disconnect
        - jsonrpc_session_pick_remote
        - jsonrpc_stream_open
        - reconnect_connect_failed
        - reconnect_connecting
        - reconnect_get_name
        - reconnect_is_passive
        - reconnect_listening
        - time_msec
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:1002,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1003,37'
              BranchSideFuncs:
                - jsonrpc_pstream_open
                - time_msec
                - reconnect_listening
                - time_msec
                - reconnect_connect_failed
                - jsonrpc_session_pick_remote
            - BranchSide:      'lib/jsonrpc.c:1010,17'
              BranchSideFuncs:
                - jsonrpc_pstream_open
                - time_msec
                - reconnect_listening
                - time_msec
                - reconnect_connect_failed
                - jsonrpc_session_pick_remote
        - Branch String:   'lib/jsonrpc.c:1004,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1005,34'
              BranchSideFuncs:
                - time_msec
                - reconnect_connect_failed
                - jsonrpc_session_pick_remote
            - BranchSide:      'lib/jsonrpc.c:1007,29'
              BranchSideFuncs:
                - time_msec
                - reconnect_connect_failed
                - jsonrpc_session_pick_remote
        - Branch String:   'lib/jsonrpc.c:1010,17'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1010,15'
              BranchSideFuncs:
                - time_msec
                - reconnect_listening
                - time_msec
                - reconnect_connect_failed
                - jsonrpc_session_pick_remote
            - BranchSide:      'lib/jsonrpc.c:1010,55'
              BranchSideFuncs:
                - jsonrpc_pstream_open
                - time_msec
                - reconnect_listening
                - time_msec
                - reconnect_connect_failed
                - jsonrpc_session_pick_remote
        - Branch String:   'lib/jsonrpc.c:1017,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1017,9'
              BranchSideFuncs:
                - time_msec
                - reconnect_connect_failed
                - jsonrpc_session_pick_remote
            - BranchSide:      'lib/jsonrpc.c:1018,34'
              BranchSideFuncs:
                - time_msec
                - reconnect_connect_failed
                - jsonrpc_session_pick_remote
      Callsites:
        - Src:             'lib/jsonrpc.c:998,24'
          Dst:             reconnect_get_name
        - Src:             'lib/jsonrpc.c:1001,5'
          Dst:             jsonrpc_session_disconnect
        - Src:             'lib/jsonrpc.c:1002,10'
          Dst:             reconnect_is_passive
        - Src:             'lib/jsonrpc.c:1003,17'
          Dst:             jsonrpc_stream_open
        - Src:             'lib/jsonrpc.c:1005,48'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1005,13'
          Dst:             reconnect_connecting
        - Src:             'lib/jsonrpc.c:1010,34'
          Dst:             jsonrpc_pstream_open
        - Src:             'lib/jsonrpc.c:1013,47'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1013,13'
          Dst:             reconnect_listening
        - Src:             'lib/jsonrpc.c:1018,48'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1018,9'
          Dst:             reconnect_connect_failed
        - Src:             'lib/jsonrpc.c:1019,9'
          Dst:             jsonrpc_session_pick_remote
    - functionName:    jsonrpc_session_disconnect
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 979
      functionLinenumberEnd: 993
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         10
      ICount:          63
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - jsonrpc_close
        - jsonrpc_error
        - jsonrpc_session_pick_remote
        - stream_close
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:980,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:981,23'
              BranchSideFuncs:
                - jsonrpc_error
                - jsonrpc_close
                - jsonrpc_session_pick_remote
            - BranchSide:      'lib/jsonrpc.c:984,16'
              BranchSideFuncs:
                - stream_close
                - jsonrpc_session_pick_remote
        - Branch String:   'lib/jsonrpc.c:984,16'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:985,22'
              BranchSideFuncs:
                - stream_close
                - jsonrpc_session_pick_remote
            - BranchSide:      'lib/jsonrpc.c:988,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/jsonrpc.c:981,9'
          Dst:             jsonrpc_error
        - Src:             'lib/jsonrpc.c:982,9'
          Dst:             jsonrpc_close
        - Src:             'lib/jsonrpc.c:985,9'
          Dst:             stream_close
        - Src:             'lib/jsonrpc.c:992,5'
          Dst:             jsonrpc_session_pick_remote
    - functionName:    jsonrpc_stream_open
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - name
        - streamp
        - dscp
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_open_with_default_port
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:75,12'
          Dst:             stream_open_with_default_port
    - functionName:    jsonrpc_pstream_open
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - name
        - pstreamp
        - dscp
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pstream_open_with_default_port
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:83,12'
          Dst:             pstream_open_with_default_port
    - functionName:    jsonrpc_session_pick_remote
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 840
      functionLinenumberEnd: 843
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - reconnect_set_name
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:841,5'
          Dst:             reconnect_set_name
    - functionName:    jsonrpc_close
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - rpc
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - jsonrpc_cleanup
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:109,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:109,9'
              BranchSideFuncs:
                - jsonrpc_cleanup
                - free
                - free
            - BranchSide:      'lib/jsonrpc.c:110,25'
              BranchSideFuncs:
                - jsonrpc_cleanup
                - free
                - free
      Callsites:
        - Src:             'lib/jsonrpc.c:110,9'
          Dst:             jsonrpc_cleanup
    - functionName:    jsonrpc_session_run
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1025
      functionLinenumberEnd: 1118
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         49
      ICount:          367
      EdgeCount:       61
      CyclomaticComplexity: 14
      functionsReached:
        - json_array_create_empty
        - json_destroy
        - json_string_create
        - jsonrpc_create_request
        - jsonrpc_get_backlog
        - jsonrpc_get_status
        - jsonrpc_open
        - jsonrpc_run
        - jsonrpc_send
        - jsonrpc_session_connect
        - jsonrpc_session_disconnect
        - jsonrpc_session_pick_remote
        - jsonrpc_set_backlog_threshold
        - pstream_accept
        - pstream_close
        - reconnect_activity
        - reconnect_connect_failed
        - reconnect_connected
        - reconnect_disconnected
        - reconnect_get_name
        - reconnect_listen_error
        - reconnect_run
        - stream_close
        - stream_connect
        - stream_run
        - time_msec
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:1026,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1030,32'
              BranchSideFuncs:
                - pstream_accept
                - time_msec
                - reconnect_connected
                - jsonrpc_open
                - jsonrpc_set_backlog_threshold
                - time_msec
                - reconnect_run
                - json_array_create_empty
                - jsonrpc_create_request
                - json_destroy.338
                - json_string_create
                - jsonrpc_send
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - jsonrpc_session_connect
                - stream_run
                - stream_connect
                - time_msec
                - reconnect_connected
                - jsonrpc_open
                - jsonrpc_set_backlog_threshold
                - time_msec
                - reconnect_connect_failed
                - jsonrpc_session_pick_remote
                - stream_close
                - jsonrpc_get_backlog
                - jsonrpc_run
                - jsonrpc_get_backlog
                - jsonrpc_get_status
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - time_msec
                - reconnect_activity
                - jsonrpc_session_disconnect
                - reconnect_get_name
                - vlog_rate_limit
                - time_msec
                - reconnect_listen_error
                - pstream_close
            - BranchSide:      'lib/jsonrpc.c:1050,9'
              BranchSideFuncs:
                - time_msec
                - reconnect_run
                - json_array_create_empty
                - jsonrpc_create_request
                - json_destroy.338
                - json_string_create
                - jsonrpc_send
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - jsonrpc_session_connect
                - stream_run
                - stream_connect
                - time_msec
                - reconnect_connected
                - jsonrpc_open
                - jsonrpc_set_backlog_threshold
                - time_msec
                - reconnect_connect_failed
                - jsonrpc_session_pick_remote
                - stream_close
                - jsonrpc_get_backlog
                - jsonrpc_run
                - jsonrpc_get_backlog
                - jsonrpc_get_status
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - time_msec
                - reconnect_activity
        - Branch String:   'lib/jsonrpc.c:1031,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1032,17'
              BranchSideFuncs:
                - time_msec
                - reconnect_run
                - json_array_create_empty
                - jsonrpc_create_request
                - json_destroy.338
                - json_string_create
                - jsonrpc_send
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - jsonrpc_session_connect
                - stream_run
                - stream_connect
                - time_msec
                - reconnect_connected
                - jsonrpc_open
                - jsonrpc_set_backlog_threshold
                - time_msec
                - reconnect_connect_failed
                - jsonrpc_session_pick_remote
                - stream_close
                - jsonrpc_get_backlog
                - jsonrpc_run
                - jsonrpc_get_backlog
                - jsonrpc_get_status
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - time_msec
                - reconnect_activity
                - time_msec
                - reconnect_listen_error
                - pstream_close
            - BranchSide:      'lib/jsonrpc.c:1043,20'
              BranchSideFuncs:
                - time_msec
                - reconnect_run
                - json_array_create_empty
                - jsonrpc_create_request
                - json_destroy.338
                - json_string_create
                - jsonrpc_send
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - jsonrpc_session_connect
                - stream_run
                - stream_connect
                - time_msec
                - reconnect_connected
                - jsonrpc_open
                - jsonrpc_set_backlog_threshold
                - time_msec
                - reconnect_connect_failed
                - jsonrpc_session_pick_remote
                - stream_close
                - jsonrpc_get_backlog
                - jsonrpc_run
                - jsonrpc_get_backlog
                - jsonrpc_get_status
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - time_msec
                - reconnect_activity
                - time_msec
                - reconnect_listen_error
                - pstream_close
        - Branch String:   'lib/jsonrpc.c:1032,24'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1032,27'
              BranchSideFuncs:
                - jsonrpc_session_disconnect
                - time_msec
                - reconnect_connected
                - jsonrpc_open
                - jsonrpc_set_backlog_threshold
                - time_msec
                - reconnect_run
                - json_array_create_empty
                - jsonrpc_create_request
                - json_destroy.338
                - json_string_create
                - jsonrpc_send
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - jsonrpc_session_connect
                - stream_run
                - stream_connect
                - time_msec
                - reconnect_connected
                - jsonrpc_open
                - jsonrpc_set_backlog_threshold
                - time_msec
                - reconnect_connect_failed
                - jsonrpc_session_pick_remote
                - stream_close
                - jsonrpc_get_backlog
                - jsonrpc_run
                - jsonrpc_get_backlog
                - jsonrpc_get_status
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - time_msec
                - reconnect_activity
                - reconnect_get_name
                - vlog_rate_limit
            - BranchSide:      'lib/jsonrpc.c:1033,17'
              BranchSideFuncs:
                - jsonrpc_session_disconnect
                - time_msec
                - reconnect_connected
                - jsonrpc_open
                - jsonrpc_set_backlog_threshold
                - time_msec
                - reconnect_run
                - json_array_create_empty
                - jsonrpc_create_request
                - json_destroy.338
                - json_string_create
                - jsonrpc_send
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - jsonrpc_session_connect
                - stream_run
                - stream_connect
                - time_msec
                - reconnect_connected
                - jsonrpc_open
                - jsonrpc_set_backlog_threshold
                - time_msec
                - reconnect_connect_failed
                - jsonrpc_session_pick_remote
                - stream_close
                - jsonrpc_get_backlog
                - jsonrpc_run
                - jsonrpc_get_backlog
                - jsonrpc_get_status
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - time_msec
                - reconnect_activity
                - reconnect_get_name
                - vlog_rate_limit
        - Branch String:   'lib/jsonrpc.c:1032,17'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1033,17'
              BranchSideFuncs:
                - jsonrpc_session_disconnect
                - time_msec
                - reconnect_connected
                - jsonrpc_open
                - jsonrpc_set_backlog_threshold
                - time_msec
                - reconnect_run
                - json_array_create_empty
                - jsonrpc_create_request
                - json_destroy.338
                - json_string_create
                - jsonrpc_send
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - jsonrpc_session_connect
                - stream_run
                - stream_connect
                - time_msec
                - reconnect_connected
                - jsonrpc_open
                - jsonrpc_set_backlog_threshold
                - time_msec
                - reconnect_connect_failed
                - jsonrpc_session_pick_remote
                - stream_close
                - jsonrpc_get_backlog
                - jsonrpc_run
                - jsonrpc_get_backlog
                - jsonrpc_get_status
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - time_msec
                - reconnect_activity
                - reconnect_get_name
                - vlog_rate_limit
            - BranchSide:      'lib/jsonrpc.c:1038,33'
              BranchSideFuncs:
                - time_msec
                - reconnect_connected
                - jsonrpc_open
                - jsonrpc_set_backlog_threshold
                - time_msec
                - reconnect_run
                - json_array_create_empty
                - jsonrpc_create_request
                - json_destroy.338
                - json_string_create
                - jsonrpc_send
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - jsonrpc_session_connect
                - stream_run
                - stream_connect
                - time_msec
                - reconnect_connected
                - jsonrpc_open
                - jsonrpc_set_backlog_threshold
                - time_msec
                - reconnect_connect_failed
                - jsonrpc_session_pick_remote
                - stream_close
                - jsonrpc_get_backlog
                - jsonrpc_run
                - jsonrpc_get_backlog
                - jsonrpc_get_status
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - time_msec
                - reconnect_activity
        - Branch String:   'lib/jsonrpc.c:1033,17'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1033,17'
              BranchSideFuncs:
                - reconnect_get_name
                - vlog_rate_limit
                - jsonrpc_session_disconnect
                - time_msec
                - reconnect_connected
                - jsonrpc_open
                - jsonrpc_set_backlog_threshold
                - time_msec
                - reconnect_run
                - json_array_create_empty
                - jsonrpc_create_request
                - json_destroy.338
                - json_string_create
                - jsonrpc_send
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - jsonrpc_session_connect
                - stream_run
                - stream_connect
                - time_msec
                - reconnect_connected
                - jsonrpc_open
                - jsonrpc_set_backlog_threshold
                - time_msec
                - reconnect_connect_failed
                - jsonrpc_session_pick_remote
                - stream_close
                - jsonrpc_get_backlog
                - jsonrpc_run
                - jsonrpc_get_backlog
                - jsonrpc_get_status
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - time_msec
                - reconnect_activity
            - BranchSide:      'lib/jsonrpc.c:1036,44'
              BranchSideFuncs:
                - jsonrpc_session_disconnect
                - time_msec
                - reconnect_connected
                - jsonrpc_open
                - jsonrpc_set_backlog_threshold
                - time_msec
                - reconnect_run
                - json_array_create_empty
                - jsonrpc_create_request
                - json_destroy.338
                - json_string_create
                - jsonrpc_send
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - jsonrpc_session_connect
                - stream_run
                - stream_connect
                - time_msec
                - reconnect_connected
                - jsonrpc_open
                - jsonrpc_set_backlog_threshold
                - time_msec
                - reconnect_connect_failed
                - jsonrpc_session_pick_remote
                - stream_close
                - jsonrpc_get_backlog
                - jsonrpc_run
                - jsonrpc_get_backlog
                - jsonrpc_get_status
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - time_msec
                - reconnect_activity
        - Branch String:   'lib/jsonrpc.c:1050,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1054,39'
              BranchSideFuncs:
                - jsonrpc_get_backlog
                - jsonrpc_run
                - jsonrpc_get_backlog
                - jsonrpc_get_status
                - time_msec
                - reconnect_run
                - json_array_create_empty
                - jsonrpc_create_request
                - json_destroy.338
                - json_string_create
                - jsonrpc_send
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - jsonrpc_session_connect
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - time_msec
                - reconnect_activity
            - BranchSide:      'lib/jsonrpc.c:1074,16'
              BranchSideFuncs:
                - time_msec
                - reconnect_run
                - json_array_create_empty
                - jsonrpc_create_request
                - json_destroy.338
                - json_string_create
                - jsonrpc_send
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - jsonrpc_session_connect
                - stream_run
                - stream_connect
                - time_msec
                - reconnect_connected
                - jsonrpc_open
                - jsonrpc_set_backlog_threshold
                - time_msec
                - reconnect_connect_failed
                - jsonrpc_session_pick_remote
                - stream_close
        - Branch String:   'lib/jsonrpc.c:1056,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1065,32'
              BranchSideFuncs:
                - time_msec
                - reconnect_activity
                - jsonrpc_get_status
                - time_msec
                - reconnect_run
                - json_array_create_empty
                - jsonrpc_create_request
                - json_destroy.338
                - json_string_create
                - jsonrpc_send
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - jsonrpc_session_connect
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
            - BranchSide:      'lib/jsonrpc.c:1068,36'
              BranchSideFuncs:
                - jsonrpc_get_status
                - time_msec
                - reconnect_run
                - json_array_create_empty
                - jsonrpc_create_request
                - json_destroy.338
                - json_string_create
                - jsonrpc_send
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - jsonrpc_session_connect
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
        - Branch String:   'lib/jsonrpc.c:1069,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1070,36'
              BranchSideFuncs:
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - time_msec
                - reconnect_run
                - json_array_create_empty
                - jsonrpc_create_request
                - json_destroy.338
                - json_string_create
                - jsonrpc_send
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - jsonrpc_session_connect
            - BranchSide:      'lib/jsonrpc.c:1074,5'
              BranchSideFuncs:
                - time_msec
                - reconnect_run
                - json_array_create_empty
                - jsonrpc_create_request
                - json_destroy.338
                - json_string_create
                - jsonrpc_send
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - jsonrpc_session_connect
        - Branch String:   'lib/jsonrpc.c:1079,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1080,33'
              BranchSideFuncs:
                - time_msec
                - reconnect_run
                - json_array_create_empty
                - jsonrpc_create_request
                - json_destroy.338
                - json_string_create
                - jsonrpc_send
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - jsonrpc_session_connect
                - time_msec
                - reconnect_connect_failed
                - jsonrpc_session_pick_remote
                - stream_close
            - BranchSide:      'lib/jsonrpc.c:1086,20'
              BranchSideFuncs:
                - time_msec
                - reconnect_run
                - json_array_create_empty
                - jsonrpc_create_request
                - json_destroy.338
                - json_string_create
                - jsonrpc_send
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
                - jsonrpc_session_connect
                - time_msec
                - reconnect_connect_failed
                - jsonrpc_session_pick_remote
                - stream_close
        - Branch String:   'lib/jsonrpc.c:1095,5'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1095,5'
              BranchSideFuncs: []
            - BranchSide:      'lib/jsonrpc.c:1097,33'
              BranchSideFuncs:
                - jsonrpc_session_connect
            - BranchSide:      'lib/jsonrpc.c:1101,32'
              BranchSideFuncs:
                - time_msec
                - reconnect_disconnected
                - jsonrpc_session_disconnect
            - BranchSide:      'lib/jsonrpc.c:1106,13'
              BranchSideFuncs:
                - json_array_create_empty
                - jsonrpc_create_request
                - json_destroy.338
                - json_string_create
                - jsonrpc_send
        - Branch String:   'lib/jsonrpc.c:1106,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1110,22'
              BranchSideFuncs:
                - json_array_create_empty
                - jsonrpc_create_request
                - json_destroy.338
                - json_string_create
                - jsonrpc_send
            - BranchSide:      'lib/jsonrpc.c:1116,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/jsonrpc.c:1030,17'
          Dst:             pstream_accept
        - Src:             'lib/jsonrpc.c:1033,17'
          Dst:             reconnect_get_name
        - Src:             'lib/jsonrpc.c:1033,17'
          Dst:             vlog_rate_limit
        - Src:             'lib/jsonrpc.c:1036,17'
          Dst:             jsonrpc_session_disconnect
        - Src:             'lib/jsonrpc.c:1038,47'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1038,13'
          Dst:             reconnect_connected
        - Src:             'lib/jsonrpc.c:1039,22'
          Dst:             jsonrpc_open
        - Src:             'lib/jsonrpc.c:1040,13'
          Dst:             jsonrpc_set_backlog_threshold
        - Src:             'lib/jsonrpc.c:1044,50'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1044,13'
          Dst:             reconnect_listen_error
        - Src:             'lib/jsonrpc.c:1045,13'
          Dst:             pstream_close
        - Src:             'lib/jsonrpc.c:1054,19'
          Dst:             jsonrpc_get_backlog
        - Src:             'lib/jsonrpc.c:1055,9'
          Dst:             jsonrpc_run
        - Src:             'lib/jsonrpc.c:1056,13'
          Dst:             jsonrpc_get_backlog
        - Src:             'lib/jsonrpc.c:1065,46'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1065,13'
          Dst:             reconnect_activity
        - Src:             'lib/jsonrpc.c:1068,17'
          Dst:             jsonrpc_get_status
        - Src:             'lib/jsonrpc.c:1070,50'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1070,13'
          Dst:             reconnect_disconnected
        - Src:             'lib/jsonrpc.c:1071,13'
          Dst:             jsonrpc_session_disconnect
        - Src:             'lib/jsonrpc.c:1077,9'
          Dst:             stream_run
        - Src:             'lib/jsonrpc.c:1078,17'
          Dst:             stream_connect
        - Src:             'lib/jsonrpc.c:1080,47'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1080,13'
          Dst:             reconnect_connected
        - Src:             'lib/jsonrpc.c:1081,22'
          Dst:             jsonrpc_open
        - Src:             'lib/jsonrpc.c:1082,13'
          Dst:             jsonrpc_set_backlog_threshold
        - Src:             'lib/jsonrpc.c:1087,52'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1087,13'
          Dst:             reconnect_connect_failed
        - Src:             'lib/jsonrpc.c:1088,13'
          Dst:             jsonrpc_session_pick_remote
        - Src:             'lib/jsonrpc.c:1089,13'
          Dst:             stream_close
        - Src:             'lib/jsonrpc.c:1095,41'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1095,13'
          Dst:             reconnect_run
        - Src:             'lib/jsonrpc.c:1097,9'
          Dst:             jsonrpc_session_connect
        - Src:             'lib/jsonrpc.c:1101,46'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:1101,9'
          Dst:             reconnect_disconnected
        - Src:             'lib/jsonrpc.c:1102,9'
          Dst:             jsonrpc_session_disconnect
        - Src:             'lib/jsonrpc.c:1110,22'
          Dst:             json_array_create_empty
        - Src:             'lib/jsonrpc.c:1111,23'
          Dst:             jsonrpc_create_request
        - Src:             'lib/jsonrpc.c:1112,13'
          Dst:             json_destroy
        - Src:             'lib/jsonrpc.c:1113,27'
          Dst:             json_string_create
        - Src:             'lib/jsonrpc.c:1114,13'
          Dst:             jsonrpc_send
    - functionName:    jsonrpc_open
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_init
        - ovs_list_init
        - stream_get_name
        - xstrdup
        - xzalloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:95,11'
          Dst:             xzalloc
        - Src:             'lib/jsonrpc.c:96,25'
          Dst:             stream_get_name
        - Src:             'lib/jsonrpc.c:96,17'
          Dst:             xstrdup
        - Src:             'lib/jsonrpc.c:98,5'
          Dst:             byteq_init
        - Src:             'lib/jsonrpc.c:99,5'
          Dst:             ovs_list_init
    - functionName:    jsonrpc_set_backlog_threshold
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - rpc
        - max_n_msgs
        - max_backlog_bytes
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_create_request
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 579
      functionLinenumberEnd: 584
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - method
        - params
        - idp
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_clone
        - jsonrpc_create
        - jsonrpc_create_id
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:581,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:581,9'
              BranchSideFuncs:
                - json_clone.337
                - jsonrpc_create
            - BranchSide:      'lib/jsonrpc.c:582,27'
              BranchSideFuncs:
                - json_clone.337
                - jsonrpc_create
      Callsites:
        - Src:             'lib/jsonrpc.c:580,23'
          Dst:             jsonrpc_create_id
        - Src:             'lib/jsonrpc.c:582,16'
          Dst:             json_clone
        - Src:             'lib/jsonrpc.c:584,12'
          Dst:             jsonrpc_create
    - functionName:    jsonrpc_create_id
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 568
      functionLinenumberEnd: 573
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - atomic_count_inc
        - json_integer_create
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:572,10'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:570,18'
              BranchSideFuncs:
                - atomic_count_inc
                - json_integer_create
            - BranchSide:      'lib/jsonrpc.c:572,10'
              BranchSideFuncs:
                - atomic_count_inc
                - json_integer_create
      Callsites:
        - Src:             'lib/jsonrpc.c:572,10'
          Dst:             atomic_count_inc
        - Src:             'lib/jsonrpc.c:573,12'
          Dst:             json_integer_create
    - functionName:    ovs_list_init
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_session_replace
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 966
      functionLinenumberEnd: 975
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - rpc
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - jsonrpc_close
        - jsonrpc_get_name
        - reconnect_connected
        - reconnect_set_name
        - time_msec
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:967,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:968,23'
              BranchSideFuncs:
                - jsonrpc_close
                - jsonrpc_get_name
                - reconnect_set_name
                - time_msec
                - reconnect_connected
            - BranchSide:      'lib/jsonrpc.c:970,14'
              BranchSideFuncs:
                - jsonrpc_get_name
                - reconnect_set_name
                - time_msec
                - reconnect_connected
        - Branch String:   'lib/jsonrpc.c:971,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:971,9'
              BranchSideFuncs:
                - jsonrpc_get_name
                - reconnect_set_name
                - time_msec
                - reconnect_connected
            - BranchSide:      'lib/jsonrpc.c:972,28'
              BranchSideFuncs:
                - jsonrpc_get_name
                - reconnect_set_name
                - time_msec
                - reconnect_connected
      Callsites:
        - Src:             'lib/jsonrpc.c:968,9'
          Dst:             jsonrpc_close
        - Src:             'lib/jsonrpc.c:972,42'
          Dst:             jsonrpc_get_name
        - Src:             'lib/jsonrpc.c:972,9'
          Dst:             reconnect_set_name
        - Src:             'lib/jsonrpc.c:973,43'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:973,9'
          Dst:             reconnect_connected
    - functionName:    jsonrpc_get_name
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - rpc
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    jsonrpc_session_steal
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 957
      functionLinenumberEnd: 961
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - jsonrpc_session_close
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:960,5'
          Dst:             jsonrpc_session_close
    - functionName:    jsonrpc_session_close
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 944
      functionLinenumberEnd: 953
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - jsonrpc_close
        - pstream_close
        - reconnect_destroy
        - stream_close
        - svec_destroy
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:945,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:945,9'
              BranchSideFuncs:
                - jsonrpc_close
                - reconnect_destroy
                - stream_close
                - pstream_close
                - svec_destroy
                - free
            - BranchSide:      'lib/jsonrpc.c:946,23'
              BranchSideFuncs:
                - jsonrpc_close
                - reconnect_destroy
                - stream_close
                - pstream_close
                - svec_destroy
                - free
      Callsites:
        - Src:             'lib/jsonrpc.c:946,9'
          Dst:             jsonrpc_close
        - Src:             'lib/jsonrpc.c:947,9'
          Dst:             reconnect_destroy
        - Src:             'lib/jsonrpc.c:948,9'
          Dst:             stream_close
        - Src:             'lib/jsonrpc.c:949,9'
          Dst:             pstream_close
        - Src:             'lib/jsonrpc.c:950,9'
          Dst:             svec_destroy
    - functionName:    jsonrpc_session_open_unreliably
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 915
      functionLinenumberEnd: 939
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - jsonrpc
        - dscp
      BBCount:         6
      ICount:          90
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - jsonrpc_get_name
        - jsonrpc_session_set_backlog_threshold
        - ovs_replay_is_active
        - reconnect_connected
        - reconnect_create
        - reconnect_set_max_tries
        - reconnect_set_name
        - reconnect_set_probe_interval
        - reconnect_set_quiet
        - svec_add
        - svec_init
        - time_msec
        - xmalloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:928,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:928,9'
              BranchSideFuncs:
                - reconnect_set_probe_interval
                - jsonrpc_session_set_backlog_threshold
            - BranchSide:      'lib/jsonrpc.c:929,38'
              BranchSideFuncs:
                - reconnect_set_probe_interval
                - jsonrpc_session_set_backlog_threshold
      Callsites:
        - Src:             'lib/jsonrpc.c:918,9'
          Dst:             xmalloc
        - Src:             'lib/jsonrpc.c:919,5'
          Dst:             svec_init
        - Src:             'lib/jsonrpc.c:920,27'
          Dst:             jsonrpc_get_name
        - Src:             'lib/jsonrpc.c:920,5'
          Dst:             svec_add
        - Src:             'lib/jsonrpc.c:922,37'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:922,20'
          Dst:             reconnect_create
        - Src:             'lib/jsonrpc.c:923,5'
          Dst:             reconnect_set_quiet
        - Src:             'lib/jsonrpc.c:924,38'
          Dst:             jsonrpc_get_name
        - Src:             'lib/jsonrpc.c:924,5'
          Dst:             reconnect_set_name
        - Src:             'lib/jsonrpc.c:925,5'
          Dst:             reconnect_set_max_tries
        - Src:             'lib/jsonrpc.c:926,39'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:926,5'
          Dst:             reconnect_connected
        - Src:             'lib/jsonrpc.c:928,9'
          Dst:             ovs_replay_is_active
        - Src:             'lib/jsonrpc.c:929,9'
          Dst:             reconnect_set_probe_interval
        - Src:             'lib/jsonrpc.c:938,5'
          Dst:             jsonrpc_session_set_backlog_threshold
    - functionName:    jsonrpc_session_set_backlog_threshold
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1365
      functionLinenumberEnd: 1371
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - s
        - max_n_msgs
        - max_backlog_bytes
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - jsonrpc_set_backlog_threshold
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:1368,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:1368,9'
              BranchSideFuncs:
                - jsonrpc_set_backlog_threshold
            - BranchSide:      'lib/jsonrpc.c:1369,39'
              BranchSideFuncs:
                - jsonrpc_set_backlog_threshold
      Callsites:
        - Src:             'lib/jsonrpc.c:1369,9'
          Dst:             jsonrpc_set_backlog_threshold
    - functionName:    jsonrpc_session_open_multiple
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 868
      functionLinenumberEnd: 905
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - remotes
        - retry
      BBCount:         18
      ICount:          157
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - jsonrpc_session_pick_remote
        - jsonrpc_session_set_backlog_threshold
        - ovs_replay_is_active
        - pstream_verify_name
        - reconnect_create
        - reconnect_enable
        - reconnect_get_name
        - reconnect_set_backoff
        - reconnect_set_backoff_free_tries
        - reconnect_set_max_tries
        - reconnect_set_passive
        - reconnect_set_probe_interval
        - stream_or_pstream_needs_probes
        - svec_add
        - svec_clone
        - time_msec
        - xmalloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:875,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:876,19'
              BranchSideFuncs:
                - time_msec
                - reconnect_create
                - jsonrpc_session_pick_remote
                - time_msec
                - reconnect_enable
                - reconnect_set_backoff_free_tries
                - jsonrpc_session_set_backlog_threshold
                - reconnect_get_name
                - pstream_verify_name
                - time_msec
                - reconnect_set_passive
                - stream_or_pstream_needs_probes
                - reconnect_set_probe_interval
                - ovs_replay_is_active
                - reconnect_set_max_tries
                - reconnect_set_backoff
            - BranchSide:      'lib/jsonrpc.c:878,5'
              BranchSideFuncs:
                - time_msec
                - reconnect_create
                - jsonrpc_session_pick_remote
                - time_msec
                - reconnect_enable
                - reconnect_set_backoff_free_tries
                - jsonrpc_session_set_backlog_threshold
                - reconnect_get_name
                - pstream_verify_name
                - time_msec
                - reconnect_set_passive
                - stream_or_pstream_needs_probes
                - reconnect_set_probe_interval
                - ovs_replay_is_active
                - reconnect_set_max_tries
                - reconnect_set_backoff
        - Branch String:   'lib/jsonrpc.c:894,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:895,31'
              BranchSideFuncs:
                - reconnect_set_max_tries
                - reconnect_set_backoff
                - stream_or_pstream_needs_probes
                - reconnect_set_probe_interval
                - ovs_replay_is_active
            - BranchSide:      'lib/jsonrpc.c:896,17'
              BranchSideFuncs:
                - reconnect_set_max_tries
                - reconnect_set_backoff
                - stream_or_pstream_needs_probes
                - reconnect_set_probe_interval
                - ovs_replay_is_active
        - Branch String:   'lib/jsonrpc.c:901,47'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:901,50'
              BranchSideFuncs:
                - ovs_replay_is_active
                - reconnect_set_probe_interval
            - BranchSide:      'lib/jsonrpc.c:902,38'
              BranchSideFuncs:
                - reconnect_set_probe_interval
        - Branch String:   'lib/jsonrpc.c:901,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:901,9'
              BranchSideFuncs:
                - reconnect_set_probe_interval
            - BranchSide:      'lib/jsonrpc.c:902,38'
              BranchSideFuncs:
                - reconnect_set_probe_interval
      Callsites:
        - Src:             'lib/jsonrpc.c:871,9'
          Dst:             xmalloc
        - Src:             'lib/jsonrpc.c:874,5'
          Dst:             svec_clone
        - Src:             'lib/jsonrpc.c:876,9'
          Dst:             svec_add
        - Src:             'lib/jsonrpc.c:880,37'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:880,20'
          Dst:             reconnect_create
        - Src:             'lib/jsonrpc.c:881,5'
          Dst:             jsonrpc_session_pick_remote
        - Src:             'lib/jsonrpc.c:882,36'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:882,5'
          Dst:             reconnect_enable
        - Src:             'lib/jsonrpc.c:883,5'
          Dst:             reconnect_set_backoff_free_tries
        - Src:             'lib/jsonrpc.c:891,5'
          Dst:             jsonrpc_session_set_backlog_threshold
        - Src:             'lib/jsonrpc.c:893,24'
          Dst:             reconnect_get_name
        - Src:             'lib/jsonrpc.c:894,10'
          Dst:             pstream_verify_name
        - Src:             'lib/jsonrpc.c:895,51'
          Dst:             time_msec
        - Src:             'lib/jsonrpc.c:895,9'
          Dst:             reconnect_set_passive
        - Src:             'lib/jsonrpc.c:897,9'
          Dst:             reconnect_set_max_tries
        - Src:             'lib/jsonrpc.c:898,9'
          Dst:             reconnect_set_backoff
        - Src:             'lib/jsonrpc.c:901,10'
          Dst:             stream_or_pstream_needs_probes
        - Src:             'lib/jsonrpc.c:901,50'
          Dst:             ovs_replay_is_active
        - Src:             'lib/jsonrpc.c:902,9'
          Dst:             reconnect_set_probe_interval
    - functionName:    jsonrpc_session_open
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 861
      functionLinenumberEnd: 863
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - name
        - retry
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - jsonrpc_session_open_multiple
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:863,12'
          Dst:             jsonrpc_session_open_multiple
    - functionName:    jsonrpc_msg_to_string
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 811
      functionLinenumberEnd: 816
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - m
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_destroy
        - json_to_string
        - jsonrpc_msg_clone
        - jsonrpc_msg_to_json
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:812,32'
          Dst:             jsonrpc_msg_clone
        - Src:             'lib/jsonrpc.c:813,25'
          Dst:             jsonrpc_msg_to_json
        - Src:             'lib/jsonrpc.c:814,15'
          Dst:             json_to_string
        - Src:             'lib/jsonrpc.c:815,5'
          Dst:             json_destroy
    - functionName:    jsonrpc_msg_clone
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 609
      functionLinenumberEnd: 614
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - old
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_nullable_clone
        - jsonrpc_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:611,27'
          Dst:             json_nullable_clone
        - Src:             'lib/jsonrpc.c:612,27'
          Dst:             json_nullable_clone
        - Src:             'lib/jsonrpc.c:613,27'
          Dst:             json_nullable_clone
        - Src:             'lib/jsonrpc.c:614,27'
          Dst:             json_nullable_clone
        - Src:             'lib/jsonrpc.c:610,12'
          Dst:             jsonrpc_create
    - functionName:    jsonrpc_create_error
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 602
      functionLinenumberEnd: 604
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - error
        - id
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_clone
        - jsonrpc_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:604,28'
          Dst:             json_clone
        - Src:             'lib/jsonrpc.c:603,12'
          Dst:             jsonrpc_create
    - functionName:    jsonrpc_create_notify
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 589
      functionLinenumberEnd: 590
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - method
        - params
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - jsonrpc_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/jsonrpc.c:590,12'
          Dst:             jsonrpc_create
    - functionName:    jsonrpc_transact_block
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 491
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - rpc
        - request
        - replyp
      BBCount:         21
      ICount:          117
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - json_clone
        - json_destroy
        - json_equal
        - jsonrpc_msg_destroy
        - jsonrpc_recv_block
        - jsonrpc_send_block
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:476,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:477,9'
              BranchSideFuncs:
                - json_destroy.338
            - BranchSide:      'lib/jsonrpc.c:489,15'
              BranchSideFuncs:
                - json_destroy.338
        - Branch String:   'lib/jsonrpc.c:479,17'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:480,17'
              BranchSideFuncs:
                - json_destroy.338
            - BranchSide:      'lib/jsonrpc.c:482,18'
              BranchSideFuncs:
                - jsonrpc_msg_destroy
                - jsonrpc_recv_block
                - json_destroy.338
                - json_equal
        - Branch String:   'lib/jsonrpc.c:482,47'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:482,50'
              BranchSideFuncs:
                - json_equal
                - jsonrpc_msg_destroy
                - jsonrpc_recv_block
                - json_destroy.338
            - BranchSide:      'lib/jsonrpc.c:483,31'
              BranchSideFuncs:
                - json_equal
                - jsonrpc_msg_destroy
                - jsonrpc_recv_block
                - json_destroy.338
        - Branch String:   'lib/jsonrpc.c:483,17'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:483,31'
              BranchSideFuncs:
                - json_equal
                - jsonrpc_msg_destroy
                - jsonrpc_recv_block
                - json_destroy.338
            - BranchSide:      'lib/jsonrpc.c:486,33'
              BranchSideFuncs:
                - jsonrpc_msg_destroy
                - jsonrpc_recv_block
                - json_equal
                - json_destroy.338
        - Branch String:   'lib/jsonrpc.c:482,17'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:484,17'
              BranchSideFuncs:
                - json_destroy.338
            - BranchSide:      'lib/jsonrpc.c:486,33'
              BranchSideFuncs:
                - jsonrpc_msg_destroy
                - jsonrpc_recv_block
                - json_equal
                - json_destroy.338
        - Branch String:   'lib/jsonrpc.c:489,15'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:489,15'
              BranchSideFuncs:
                - json_destroy.338
            - BranchSide:      'lib/jsonrpc.c:489,30'
              BranchSideFuncs:
                - json_destroy.338
      Callsites:
        - Src:             'lib/jsonrpc.c:474,10'
          Dst:             json_clone
        - Src:             'lib/jsonrpc.c:475,13'
          Dst:             jsonrpc_send_block
        - Src:             'lib/jsonrpc.c:478,21'
          Dst:             jsonrpc_recv_block
        - Src:             'lib/jsonrpc.c:483,20'
          Dst:             json_equal
        - Src:             'lib/jsonrpc.c:486,13'
          Dst:             jsonrpc_msg_destroy
        - Src:             'lib/jsonrpc.c:490,5'
          Dst:             json_destroy
    - functionName:    jsonrpc_send_block
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - rpc
        - msg
      BBCount:         12
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - fatal_signal_run
        - jsonrpc_run
        - jsonrpc_send
        - jsonrpc_wait
        - ovs_list_is_empty
        - poll_block
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:424,9'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:425,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/jsonrpc.c:428,5'
              BranchSideFuncs:
                - jsonrpc_run
                - ovs_list_is_empty
                - jsonrpc_wait
                - poll_block
        - Branch String:   'lib/jsonrpc.c:430,45'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:430,48'
              BranchSideFuncs: []
            - BranchSide:      'lib/jsonrpc.c:431,20'
              BranchSideFuncs: []
        - Branch String:   'lib/jsonrpc.c:430,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:431,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/jsonrpc.c:433,22'
              BranchSideFuncs:
                - jsonrpc_wait
                - poll_block
                - jsonrpc_run
                - ovs_list_is_empty
      Callsites:
        - Src:             'lib/jsonrpc.c:421,5'
          Dst:             fatal_signal_run
        - Src:             'lib/jsonrpc.c:423,13'
          Dst:             jsonrpc_send
        - Src:             'lib/jsonrpc.c:429,9'
          Dst:             jsonrpc_run
        - Src:             'lib/jsonrpc.c:430,13'
          Dst:             ovs_list_is_empty
        - Src:             'lib/jsonrpc.c:433,9'
          Dst:             jsonrpc_wait
        - Src:             'lib/jsonrpc.c:434,9'
          Dst:             poll_block
    - functionName:    jsonrpc_recv_block
      functionSourceFile: '/src/openvswitch/lib/jsonrpc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 453
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - rpc
        - msgp
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fatal_signal_run
        - jsonrpc_recv
        - jsonrpc_recv_wait
        - jsonrpc_run
        - jsonrpc_wait
        - poll_block
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/jsonrpc.c:445,13'
          Branch Sides:
            - BranchSide:      'lib/jsonrpc.c:446,13'
              BranchSideFuncs:
                - fatal_signal_run
            - BranchSide:      'lib/jsonrpc.c:450,21'
              BranchSideFuncs:
                - jsonrpc_run
                - jsonrpc_wait
                - jsonrpc_recv_wait
                - poll_block
                - jsonrpc_recv
                - fatal_signal_run
      Callsites:
        - Src:             'lib/jsonrpc.c:444,21'
          Dst:             jsonrpc_recv
        - Src:             'lib/jsonrpc.c:446,13'
          Dst:             fatal_signal_run
        - Src:             'lib/jsonrpc.c:450,9'
          Dst:             jsonrpc_run
        - Src:             'lib/jsonrpc.c:451,9'
          Dst:             jsonrpc_wait
        - Src:             'lib/jsonrpc.c:452,9'
          Dst:             jsonrpc_recv_wait
        - Src:             'lib/jsonrpc.c:453,9'
          Dst:             poll_block
    - functionName:    ovs_list_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - elem
      BBCount:         1
      ICount:          26
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ofpbuf_copy__
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - b
        - new_base
        - new_headroom
        - new_tailroom
      BBCount:         9
      ICount:          96
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ofpbuf_headroom
        - ofpbuf_tailroom
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/ofpbuf.c:240,28'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:240,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/ofpbuf.c:240,12'
              BranchSideFuncs: []
        - Branch String:   'lib/ofpbuf.c:241,28'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:241,28'
              BranchSideFuncs: []
            - BranchSide:      'lib/ofpbuf.c:241,28'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ofpbuf.c:238,27'
          Dst:             ofpbuf_headroom
        - Src:             'lib/ofpbuf.c:239,27'
          Dst:             ofpbuf_tailroom
    - functionName:    ofpbuf_headroom
      functionSourceFile: '/src/openvswitch/./include/openvswitch/ofpbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ofpbuf_tailroom
      functionSourceFile: '/src/openvswitch/./include/openvswitch/ofpbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_end
        - ofpbuf_tail
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/ofpbuf.h:229,19'
          Dst:             ofpbuf_end
        - Src:             './include/openvswitch/ofpbuf.h:229,42'
          Dst:             ofpbuf_tail
    - functionName:    ofpbuf_end
      functionSourceFile: '/src/openvswitch/./include/openvswitch/ofpbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         7
      ICount:          50
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/ofpbuf.h:212,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/ofpbuf.h:212,5'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/ofpbuf.h:212,5'
              BranchSideFuncs: []
        - Branch String:   './include/openvswitch/ofpbuf.h:213,12'
          Branch Sides:
            - BranchSide:      './include/openvswitch/ofpbuf.h:213,31'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/ofpbuf.h:213,12'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ofpbuf_tail
      functionSourceFile: '/src/openvswitch/./include/openvswitch/ofpbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         7
      ICount:          50
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   './include/openvswitch/ofpbuf.h:204,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/ofpbuf.h:204,5'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/ofpbuf.h:204,5'
              BranchSideFuncs: []
        - Branch String:   './include/openvswitch/ofpbuf.h:205,12'
          Branch Sides:
            - BranchSide:      './include/openvswitch/ofpbuf.h:205,31'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/ofpbuf.h:205,12'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ovs_list_poison
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ofpbuf_init__
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - char
      constantsTouched: []
      argNames:
        - b
        - allocated
        - source
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_poison
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:31,5'
          Dst:             ovs_list_poison
    - functionName:    ofpbuf_delete
      functionSourceFile: '/src/openvswitch/./include/openvswitch/ofpbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ofpbuf_uninit
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/ofpbuf.h:173,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/ofpbuf.h:173,9'
              BranchSideFuncs:
                - ofpbuf_uninit
                - free
            - BranchSide:      './include/openvswitch/ofpbuf.h:174,23'
              BranchSideFuncs:
                - ofpbuf_uninit
                - free
      Callsites:
        - Src:             './include/openvswitch/ofpbuf.h:174,9'
          Dst:             ofpbuf_uninit
    - functionName:    ofpbuf_uninit
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/ofpbuf.c:148,9'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:148,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/ofpbuf.c:149,13'
              BranchSideFuncs:
                - free
        - Branch String:   'lib/ofpbuf.c:149,13'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:150,18'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/ofpbuf.c:152,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ovs_list_pop_front
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:264,5'
          Dst:             ovs_list_remove
    - functionName:    ovs_list_is_empty
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ofpbuf_list_delete
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 574
      functionLinenumberEnd: 580
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ofpbuf_delete
        - ovs_list_is_empty
        - ovs_list_pop_front
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ofpbuf.c:577,5'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:577,5'
              BranchSideFuncs:
                - ofpbuf_delete.450
                - ovs_list_is_empty.453
                - ovs_list_pop_front
            - BranchSide:      'lib/ofpbuf.c:577,5'
              BranchSideFuncs:
                - ovs_list_pop_front
                - ofpbuf_delete.450
                - ovs_list_is_empty.453
        - Branch String:   'lib/ofpbuf.c:577,5'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:578,23'
              BranchSideFuncs:
                - ofpbuf_delete.450
                - ovs_list_is_empty.453
                - ovs_list_pop_front
            - BranchSide:      'lib/ofpbuf.c:580,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ofpbuf.c:577,5'
          Dst:             ovs_list_is_empty
        - Src:             'lib/ofpbuf.c:577,5'
          Dst:             ovs_list_pop_front
        - Src:             'lib/ofpbuf.c:578,9'
          Dst:             ofpbuf_delete
    - functionName:    ofpbuf_to_string
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 559
      functionLinenumberEnd: 567
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - maxbytes
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_cstr
        - ds_init
        - ds_put_format
        - ds_put_hex_dump
        - ofpbuf_headroom
        - ofpbuf_tailroom
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ofpbuf.c:566,34'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:566,34'
              BranchSideFuncs:
                - ds_put_hex_dump
                - ds_cstr
            - BranchSide:      'lib/ofpbuf.c:566,34'
              BranchSideFuncs:
                - ds_put_hex_dump
                - ds_cstr
      Callsites:
        - Src:             'lib/ofpbuf.c:562,5'
          Dst:             ds_init
        - Src:             'lib/ofpbuf.c:565,19'
          Dst:             ofpbuf_headroom
        - Src:             'lib/ofpbuf.c:565,39'
          Dst:             ofpbuf_tailroom
        - Src:             'lib/ofpbuf.c:563,5'
          Dst:             ds_put_format
        - Src:             'lib/ofpbuf.c:566,5'
          Dst:             ds_put_hex_dump
        - Src:             'lib/ofpbuf.c:567,12'
          Dst:             ds_cstr
    - functionName:    ofpbuf_steal_data
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 537
      functionLinenumberEnd: 552
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         12
      ICount:          89
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - xmemdup
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ofpbuf.c:540,36'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:540,39'
              BranchSideFuncs:
                - xmemdup
                - free
            - BranchSide:      'lib/ofpbuf.c:543,21'
              BranchSideFuncs:
                - xmemdup
                - free
        - Branch String:   'lib/ofpbuf.c:540,9'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:541,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/ofpbuf.c:543,21'
              BranchSideFuncs:
                - xmemdup
                - free
      Callsites:
        - Src:             'lib/ofpbuf.c:543,13'
          Dst:             xmemdup
    - functionName:    ofpbuf_insert
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 520
      functionLinenumberEnd: 530
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - offset
        - data
        - n
      BBCount:         6
      ICount:          83
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ofpbuf_put
        - ofpbuf_put_uninit
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ofpbuf.c:521,9'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:522,27'
              BranchSideFuncs:
                - ofpbuf_put_uninit
            - BranchSide:      'lib/ofpbuf.c:527,9'
              BranchSideFuncs:
                - ofpbuf_put
      Callsites:
        - Src:             'lib/ofpbuf.c:522,9'
          Dst:             ofpbuf_put_uninit
        - Src:             'lib/ofpbuf.c:528,9'
          Dst:             ofpbuf_put
    - functionName:    ofpbuf_put_uninit
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - size
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_prealloc_tailroom
        - ofpbuf_tail
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:403,5'
          Dst:             ofpbuf_prealloc_tailroom
        - Src:             'lib/ofpbuf.c:404,9'
          Dst:             ofpbuf_tail
    - functionName:    ofpbuf_put
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 433
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - p
        - size
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ofpbuf_put_uninit
        - ofpbuf_tail
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/ofpbuf.c:426,9'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:427,28'
              BranchSideFuncs:
                - ofpbuf_put_uninit
            - BranchSide:      'lib/ofpbuf.c:430,35'
              BranchSideFuncs:
                - ofpbuf_put_uninit
      Callsites:
        - Src:             'lib/ofpbuf.c:427,16'
          Dst:             ofpbuf_tail
        - Src:             'lib/ofpbuf.c:430,17'
          Dst:             ofpbuf_put_uninit
    - functionName:    ofpbuf_prealloc_tailroom
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - size
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ofpbuf_headroom
        - ofpbuf_resize__
        - ofpbuf_tailroom
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/ofpbuf.c:307,9'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:307,9'
              BranchSideFuncs:
                - ofpbuf_headroom
                - ofpbuf_resize__
            - BranchSide:      'lib/ofpbuf.c:308,25'
              BranchSideFuncs:
                - ofpbuf_headroom
                - ofpbuf_resize__
        - Branch String:   'lib/ofpbuf.c:308,48'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:308,9'
              BranchSideFuncs:
                - ofpbuf_resize__
            - BranchSide:      'lib/ofpbuf.c:308,9'
              BranchSideFuncs:
                - ofpbuf_resize__
      Callsites:
        - Src:             'lib/ofpbuf.c:307,16'
          Dst:             ofpbuf_tailroom
        - Src:             'lib/ofpbuf.c:308,28'
          Dst:             ofpbuf_headroom
        - Src:             'lib/ofpbuf.c:308,9'
          Dst:             ofpbuf_resize__
    - functionName:    ofpbuf_resize__
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - b
        - new_headroom
        - new_tailroom
      BBCount:         20
      ICount:          190
      EdgeCount:       21
      CyclomaticComplexity: 3
      functionsReached:
        - abort
        - ofpbuf_copy__
        - ofpbuf_headroom
        - xmalloc
        - xrealloc
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/ofpbuf.c:258,5'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:260,13'
              BranchSideFuncs:
                - ofpbuf_headroom
                - xmalloc
                - ofpbuf_copy__
                - free
                - xrealloc
            - BranchSide:      'lib/ofpbuf.c:270,9'
              BranchSideFuncs:
                - abort
            - BranchSide:      'lib/ofpbuf.c:273,9'
              BranchSideFuncs:
                - xmalloc
                - ofpbuf_copy__
            - BranchSide:      'lib/ofpbuf.c:279,9'
              BranchSideFuncs:
                - abort
        - Branch String:   'lib/ofpbuf.c:260,13'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:261,33'
              BranchSideFuncs:
                - xrealloc
            - BranchSide:      'lib/ofpbuf.c:263,32'
              BranchSideFuncs:
                - xmalloc
                - ofpbuf_copy__
                - free
        - Branch String:   'lib/ofpbuf.c:286,9'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:286,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/ofpbuf.c:287,13'
              BranchSideFuncs: []
        - Branch String:   'lib/ofpbuf.c:287,13'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:288,48'
              BranchSideFuncs: []
            - BranchSide:      'lib/ofpbuf.c:292,13'
              BranchSideFuncs: []
        - Branch String:   'lib/ofpbuf.c:292,13'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:293,45'
              BranchSideFuncs: []
            - BranchSide:      'lib/ofpbuf.c:297,19'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ofpbuf.c:260,29'
          Dst:             ofpbuf_headroom
        - Src:             'lib/ofpbuf.c:261,24'
          Dst:             xrealloc
        - Src:             'lib/ofpbuf.c:263,24'
          Dst:             xmalloc
        - Src:             'lib/ofpbuf.c:264,13'
          Dst:             ofpbuf_copy__
        - Src:             'lib/ofpbuf.c:270,9'
          Dst:             abort
        - Src:             'lib/ofpbuf.c:274,20'
          Dst:             xmalloc
        - Src:             'lib/ofpbuf.c:275,9'
          Dst:             ofpbuf_copy__
        - Src:             'lib/ofpbuf.c:279,9'
          Dst:             abort
    - functionName:    ofpbuf_push
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 508
      functionLinenumberEnd: 511
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - p
        - size
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_push_uninit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:509,17'
          Dst:             ofpbuf_push_uninit
    - functionName:    ofpbuf_push_uninit
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 481
      functionLinenumberEnd: 490
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - size
      BBCount:         6
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ofpbuf_prealloc_headroom
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/ofpbuf.c:482,9'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:483,16'
              BranchSideFuncs:
                - ofpbuf_prealloc_headroom
            - BranchSide:      'lib/ofpbuf.c:486,30'
              BranchSideFuncs:
                - ofpbuf_prealloc_headroom
      Callsites:
        - Src:             'lib/ofpbuf.c:486,5'
          Dst:             ofpbuf_prealloc_headroom
    - functionName:    ofpbuf_prealloc_headroom
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - size
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ofpbuf_headroom
        - ofpbuf_resize__
        - ofpbuf_tailroom
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ofpbuf.c:318,9'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:318,9'
              BranchSideFuncs:
                - ofpbuf_tailroom
                - ofpbuf_resize__
            - BranchSide:      'lib/ofpbuf.c:319,25'
              BranchSideFuncs:
                - ofpbuf_tailroom
                - ofpbuf_resize__
        - Branch String:   'lib/ofpbuf.c:319,28'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:319,59'
              BranchSideFuncs:
                - ofpbuf_tailroom
                - ofpbuf_resize__
            - BranchSide:      'lib/ofpbuf.c:319,59'
              BranchSideFuncs:
                - ofpbuf_tailroom
                - ofpbuf_resize__
      Callsites:
        - Src:             'lib/ofpbuf.c:318,16'
          Dst:             ofpbuf_headroom
        - Src:             'lib/ofpbuf.c:319,43'
          Dst:             ofpbuf_tailroom
        - Src:             'lib/ofpbuf.c:319,9'
          Dst:             ofpbuf_resize__
    - functionName:    ofpbuf_push_zeros
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 497
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - size
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_push_uninit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:498,17'
          Dst:             ofpbuf_push_uninit
    - functionName:    ofpbuf_put_hex
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
        - s
        - n
      BBCount:         9
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - hexits_value
        - ofpbuf_put
        - strspn
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ofpbuf.c:450,13'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:451,17'
              BranchSideFuncs:
                - ofpbuf_put
                - strspn
                - hexits_value
            - BranchSide:      'lib/ofpbuf.c:457,20'
              BranchSideFuncs:
                - ofpbuf_put
                - strspn
                - hexits_value
        - Branch String:   'lib/ofpbuf.c:451,17'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:451,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/ofpbuf.c:452,22'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ofpbuf.c:448,14'
          Dst:             strspn
        - Src:             'lib/ofpbuf.c:449,16'
          Dst:             hexits_value
        - Src:             'lib/ofpbuf.c:457,9'
          Dst:             ofpbuf_put
    - functionName:    strspn
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nullable_memset
      functionSourceFile: '/src/openvswitch/lib/util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - dst
        - c
        - n
      BBCount:         4
      ICount:          30
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.h:216,9'
          Branch Sides:
            - BranchSide:      'lib/util.h:216,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.h:217,16'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ofpbuf_shift
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - b
        - delta
      BBCount:         12
      ICount:          89
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ofpbuf_headroom
        - ofpbuf_tailroom
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ofpbuf.c:385,5'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:385,5'
              BranchSideFuncs:
                - ofpbuf_tailroom
            - BranchSide:      'lib/ofpbuf.c:389,9'
              BranchSideFuncs:
                - ofpbuf_tailroom
        - Branch String:   'lib/ofpbuf.c:385,5'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:389,9'
              BranchSideFuncs:
                - ofpbuf_headroom
            - BranchSide:      'lib/ofpbuf.c:389,9'
              BranchSideFuncs: []
        - Branch String:   'lib/ofpbuf.c:389,9'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:389,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/ofpbuf.c:390,30'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ofpbuf.c:385,5'
          Dst:             ofpbuf_tailroom
        - Src:             'lib/ofpbuf.c:385,5'
          Dst:             ofpbuf_headroom
    - functionName:    ofpbuf_put_zeros
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - size
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - nullable_memset
        - ofpbuf_put_uninit
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:415,17'
          Dst:             ofpbuf_put_uninit
        - Src:             'lib/ofpbuf.c:416,5'
          Dst:             nullable_memset
    - functionName:    ofpbuf_padto
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - length
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ofpbuf_put_zeros
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ofpbuf.c:369,9'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:369,9'
              BranchSideFuncs:
                - ofpbuf_put_zeros
            - BranchSide:      'lib/ofpbuf.c:370,26'
              BranchSideFuncs:
                - ofpbuf_put_zeros
      Callsites:
        - Src:             'lib/ofpbuf.c:370,9'
          Dst:             ofpbuf_put_zeros
    - functionName:    ofpbuf_align
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         9
      ICount:          41
      EdgeCount:       16
      CyclomaticComplexity: 9
      functionsReached:
        - abort
        - ofpbuf_resize__
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ofpbuf.c:350,5'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:350,5'
              BranchSideFuncs: []
            - BranchSide:      'lib/ofpbuf.c:356,25'
              BranchSideFuncs:
                - ofpbuf_resize__
            - BranchSide:      'lib/ofpbuf.c:356,25'
              BranchSideFuncs:
                - ofpbuf_resize__
            - BranchSide:      'lib/ofpbuf.c:359,9'
              BranchSideFuncs:
                - abort
      Callsites:
        - Src:             'lib/ofpbuf.c:356,9'
          Dst:             ofpbuf_resize__
        - Src:             'lib/ofpbuf.c:359,9'
          Dst:             abort
    - functionName:    ofpbuf_trim
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         11
      ICount:          50
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ofpbuf_headroom
        - ofpbuf_resize__
        - ofpbuf_tailroom
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ofpbuf.c:338,9'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:338,29'
              BranchSideFuncs:
                - ofpbuf_headroom
                - ofpbuf_tailroom
                - ofpbuf_resize__
            - BranchSide:      'lib/ofpbuf.c:338,9'
              BranchSideFuncs: []
        - Branch String:   'lib/ofpbuf.c:338,32'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:338,51'
              BranchSideFuncs:
                - ofpbuf_resize__
            - BranchSide:      'lib/ofpbuf.c:339,25'
              BranchSideFuncs:
                - ofpbuf_resize__
        - Branch String:   'lib/ofpbuf.c:337,9'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:337,9'
              BranchSideFuncs:
                - ofpbuf_resize__
            - BranchSide:      'lib/ofpbuf.c:339,25'
              BranchSideFuncs:
                - ofpbuf_resize__
      Callsites:
        - Src:             'lib/ofpbuf.c:338,13'
          Dst:             ofpbuf_headroom
        - Src:             'lib/ofpbuf.c:338,35'
          Dst:             ofpbuf_tailroom
        - Src:             'lib/ofpbuf.c:339,9'
          Dst:             ofpbuf_resize__
    - functionName:    ofpbuf_clone_data
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - data
        - size
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_clone_data_with_headroom
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:219,12'
          Dst:             ofpbuf_clone_data_with_headroom
    - functionName:    ofpbuf_clone_data_with_headroom
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - data
        - size
        - headroom
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_new_with_headroom
        - ofpbuf_put
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:228,24'
          Dst:             ofpbuf_new_with_headroom
        - Src:             'lib/ofpbuf.c:229,5'
          Dst:             ofpbuf_put
    - functionName:    ofpbuf_new_with_headroom
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - size
        - headroom
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_new
        - ofpbuf_reserve
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:178,24'
          Dst:             ofpbuf_new
        - Src:             'lib/ofpbuf.c:179,5'
          Dst:             ofpbuf_reserve
    - functionName:    ofpbuf_new
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - size
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_init
        - xmalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:168,24'
          Dst:             xmalloc
        - Src:             'lib/ofpbuf.c:169,5'
          Dst:             ofpbuf_init
    - functionName:    ofpbuf_reserve
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - size
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ofpbuf_prealloc_tailroom
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ofpbuf.c:469,9'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:470,9'
              BranchSideFuncs:
                - ofpbuf_prealloc_tailroom
            - BranchSide:      'lib/ofpbuf.c:472,30'
              BranchSideFuncs:
                - ofpbuf_prealloc_tailroom
      Callsites:
        - Src:             'lib/ofpbuf.c:472,5'
          Dst:             ofpbuf_prealloc_tailroom
    - functionName:    ofpbuf_init
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - size
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ofpbuf_use
        - xmalloc
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/ofpbuf.c:141,19'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:141,34'
              BranchSideFuncs:
                - xmalloc
                - ofpbuf_use
            - BranchSide:      'lib/ofpbuf.c:141,19'
              BranchSideFuncs:
                - ofpbuf_use
      Callsites:
        - Src:             'lib/ofpbuf.c:141,26'
          Dst:             xmalloc
        - Src:             'lib/ofpbuf.c:141,5'
          Dst:             ofpbuf_use
    - functionName:    ofpbuf_use
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - base
        - allocated
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_use__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:52,5'
          Dst:             ofpbuf_use__
    - functionName:    ofpbuf_use__
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - char
      constantsTouched: []
      argNames:
        - b
        - base
        - allocated
        - size
        - source
      BBCount:         3
      ICount:          43
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_init__
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:42,5'
          Dst:             ofpbuf_init__
    - functionName:    ofpbuf_clone_with_headroom
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - headroom
      BBCount:         13
      ICount:          114
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - ofpbuf_clone_data_with_headroom
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ofpbuf.c:200,26'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:200,29'
              BranchSideFuncs: []
            - BranchSide:      'lib/ofpbuf.c:205,9'
              BranchSideFuncs: []
        - Branch String:   'lib/ofpbuf.c:200,9'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:201,44'
              BranchSideFuncs: []
            - BranchSide:      'lib/ofpbuf.c:205,9'
              BranchSideFuncs: []
        - Branch String:   'lib/ofpbuf.c:205,26'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:205,29'
              BranchSideFuncs: []
            - BranchSide:      'lib/ofpbuf.c:205,26'
              BranchSideFuncs: []
        - Branch String:   'lib/ofpbuf.c:205,9'
          Branch Sides:
            - BranchSide:      'lib/ofpbuf.c:205,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/ofpbuf.c:206,41'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ofpbuf.c:199,18'
          Dst:             ofpbuf_clone_data_with_headroom
    - functionName:    ofpbuf_clone
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - buffer
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_clone_with_headroom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:189,12'
          Dst:             ofpbuf_clone_with_headroom
    - functionName:    ofpbuf_reinit
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - size
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_init
        - ofpbuf_uninit
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:159,5'
          Dst:             ofpbuf_uninit
        - Src:             'lib/ofpbuf.c:160,5'
          Dst:             ofpbuf_init
    - functionName:    ofpbuf_use_data
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - data
        - size
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_use__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:133,5'
          Dst:             ofpbuf_use__
    - functionName:    ofpbuf_use_const
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - data
        - size
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_use__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:115,5'
          Dst:             ofpbuf_use__
    - functionName:    ofpbuf_use_stub
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - base
        - allocated
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_use__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:102,5'
          Dst:             ofpbuf_use__
    - functionName:    ofpbuf_use_stack
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - base
        - allocated
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_use__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:82,5'
          Dst:             ofpbuf_use__
    - functionName:    ofpbuf_use_ds
      functionSourceFile: '/src/openvswitch/lib/ofpbuf.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
        - ds
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_use__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ofpbuf.c:62,5'
          Dst:             ofpbuf_use__
    - functionName:    init_this_module_ovs_replay
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-replay.c:31,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:31,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/ovs-replay.c:31,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/ovs-replay.c:31,1'
          Dst:             vlog_insert_module
    - functionName:    ovs_replay_usage
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 243
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - printf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-replay.c:240,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:240,5'
              BranchSideFuncs:
                - printf
            - BranchSide:      'lib/ovs-replay.c:240,5'
              BranchSideFuncs:
                - printf
      Callsites:
        - Src:             'lib/ovs-replay.c:240,5'
          Dst:             printf
    - functionName:    printf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    21
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_replay_read
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - f
        - buffer
        - buffer_size
        - len
        - seqno
        - is_read
      BBCount:         43
      ICount:          215
      EdgeCount:       55
      CyclomaticComplexity: 14
      functionsReached:
        - ferror
        - fread
        - vlog
        - vlog_rate_limit
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/ovs-replay.c:206,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:207,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/ovs-replay.c:211,9'
              BranchSideFuncs:
                - fread
                - ferror
                - vlog
                - fread
                - vlog_rate_limit
                - vlog_rate_limit
        - Branch String:   'lib/ovs-replay.c:207,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:207,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/ovs-replay.c:208,9'
              BranchSideFuncs: []
        - Branch String:   'lib/ovs-replay.c:211,17'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:211,21'
              BranchSideFuncs:
                - fread
                - ferror
                - vlog
                - fread
                - vlog_rate_limit
                - vlog_rate_limit
            - BranchSide:      'lib/ovs-replay.c:218,10'
              BranchSideFuncs:
                - fread
                - ferror
                - vlog
                - fread
                - vlog_rate_limit
        - Branch String:   'lib/ovs-replay.c:211,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:212,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/ovs-replay.c:218,10'
              BranchSideFuncs:
                - fread
                - ferror
                - vlog
                - fread
                - vlog_rate_limit
        - Branch String:   'lib/ovs-replay.c:212,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:212,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/ovs-replay.c:215,9'
              BranchSideFuncs: []
        - Branch String:   'lib/ovs-replay.c:218,18'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:218,21'
              BranchSideFuncs:
                - fread
                - ferror
                - vlog
                - fread
                - vlog_rate_limit
            - BranchSide:      'lib/ovs-replay.c:223,15'
              BranchSideFuncs:
                - fread
                - ferror
                - vlog
        - Branch String:   'lib/ovs-replay.c:218,29'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:218,38'
              BranchSideFuncs:
                - fread
                - fread
                - ferror
                - vlog
                - vlog_rate_limit
            - BranchSide:      'lib/ovs-replay.c:223,15'
              BranchSideFuncs:
                - fread
                - ferror
                - vlog
        - Branch String:   'lib/ovs-replay.c:218,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:219,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/ovs-replay.c:223,15'
              BranchSideFuncs:
                - fread
                - ferror
                - vlog
        - Branch String:   'lib/ovs-replay.c:219,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:219,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/ovs-replay.c:220,9'
              BranchSideFuncs: []
        - Branch String:   'lib/ovs-replay.c:223,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:224,10'
              BranchSideFuncs:
                - ferror
                - vlog
            - BranchSide:      'lib/ovs-replay.c:231,12'
              BranchSideFuncs: []
        - Branch String:   'lib/ovs-replay.c:225,13'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:226,13'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/ovs-replay.c:229,5'
              BranchSideFuncs: []
        - Branch String:   'lib/ovs-replay.c:226,13'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:226,13'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/ovs-replay.c:227,13'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-replay.c:206,9'
          Dst:             fread
        - Src:             'lib/ovs-replay.c:207,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/ovs-replay.c:212,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/ovs-replay.c:218,32'
          Dst:             fread
        - Src:             'lib/ovs-replay.c:219,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/ovs-replay.c:223,9'
          Dst:             fread
        - Src:             'lib/ovs-replay.c:225,13'
          Dst:             ferror
        - Src:             'lib/ovs-replay.c:226,13'
          Dst:             vlog
    - functionName:    ovs_replay_write
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 197
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - f
        - buffer
        - n
        - is_read
      BBCount:         36
      ICount:          192
      EdgeCount:       46
      CyclomaticComplexity: 12
      functionsReached:
        - fflush
        - fwrite
        - ovs_replay_get_state
        - ovs_replay_lock
        - ovs_replay_unlock
        - vlog_rate_limit
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/ovs-replay.c:171,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:172,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/ovs-replay.c:175,5'
              BranchSideFuncs:
                - ovs_replay_lock
                - fwrite
                - fwrite
                - ovs_replay_unlock
                - fflush
                - fwrite
                - vlog_rate_limit
                - vlog_rate_limit
                - vlog_rate_limit
        - Branch String:   'lib/ovs-replay.c:177,22'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:177,32'
              BranchSideFuncs:
                - fwrite
                - fwrite
                - ovs_replay_unlock
                - fflush
                - fwrite
                - vlog_rate_limit
                - vlog_rate_limit
                - vlog_rate_limit
            - BranchSide:      'lib/ovs-replay.c:177,48'
              BranchSideFuncs:
                - fwrite
                - fwrite
                - ovs_replay_unlock
                - fflush
                - fwrite
                - vlog_rate_limit
                - vlog_rate_limit
                - vlog_rate_limit
        - Branch String:   'lib/ovs-replay.c:178,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:179,9'
              BranchSideFuncs:
                - ovs_replay_unlock
                - fflush
                - vlog_rate_limit
            - BranchSide:      'lib/ovs-replay.c:183,33'
              BranchSideFuncs:
                - fwrite
                - ovs_replay_unlock
                - fflush
                - fwrite
                - vlog_rate_limit
                - vlog_rate_limit
        - Branch String:   'lib/ovs-replay.c:179,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:179,9'
              BranchSideFuncs:
                - vlog_rate_limit
                - ovs_replay_unlock
                - fflush
            - BranchSide:      'lib/ovs-replay.c:180,16'
              BranchSideFuncs:
                - ovs_replay_unlock
                - fflush
        - Branch String:   'lib/ovs-replay.c:183,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:184,9'
              BranchSideFuncs:
                - ovs_replay_unlock
                - fflush
                - vlog_rate_limit
            - BranchSide:      'lib/ovs-replay.c:188,9'
              BranchSideFuncs:
                - ovs_replay_unlock
                - fflush
                - fwrite
                - vlog_rate_limit
        - Branch String:   'lib/ovs-replay.c:184,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:184,9'
              BranchSideFuncs:
                - vlog_rate_limit
                - ovs_replay_unlock
                - fflush
            - BranchSide:      'lib/ovs-replay.c:185,16'
              BranchSideFuncs:
                - ovs_replay_unlock
                - fflush
        - Branch String:   'lib/ovs-replay.c:188,15'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:188,18'
              BranchSideFuncs:
                - ovs_replay_unlock
                - fflush
                - fwrite
                - vlog_rate_limit
            - BranchSide:      'lib/ovs-replay.c:188,56'
              BranchSideFuncs:
                - ovs_replay_unlock
                - fflush
        - Branch String:   'lib/ovs-replay.c:188,26'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:188,36'
              BranchSideFuncs:
                - fwrite
                - ovs_replay_unlock
                - fflush
                - vlog_rate_limit
            - BranchSide:      'lib/ovs-replay.c:188,56'
              BranchSideFuncs:
                - ovs_replay_unlock
                - fflush
        - Branch String:   'lib/ovs-replay.c:188,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:188,56'
              BranchSideFuncs:
                - ovs_replay_unlock
                - fflush
                - vlog_rate_limit
            - BranchSide:      'lib/ovs-replay.c:189,9'
              BranchSideFuncs:
                - ovs_replay_unlock
                - fflush
                - vlog_rate_limit
        - Branch String:   'lib/ovs-replay.c:189,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:189,9'
              BranchSideFuncs:
                - vlog_rate_limit
                - ovs_replay_unlock
                - fflush
            - BranchSide:      'lib/ovs-replay.c:190,16'
              BranchSideFuncs:
                - ovs_replay_unlock
                - fflush
      Callsites:
        - Src:             'lib/ovs-replay.c:167,17'
          Dst:             ovs_replay_get_state
        - Src:             'lib/ovs-replay.c:175,5'
          Dst:             ovs_replay_lock
        - Src:             'lib/ovs-replay.c:178,9'
          Dst:             fwrite
        - Src:             'lib/ovs-replay.c:179,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/ovs-replay.c:183,9'
          Dst:             fwrite
        - Src:             'lib/ovs-replay.c:184,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/ovs-replay.c:188,29'
          Dst:             fwrite
        - Src:             'lib/ovs-replay.c:189,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/ovs-replay.c:194,5'
          Dst:             ovs_replay_unlock
        - Src:             'lib/ovs-replay.c:195,5'
          Dst:             fflush
    - functionName:    ovs_replay_get_state
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_replay_lock
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_lock_at
      functionUses:    8
      BranchProfiles:
        - Branch String:   'lib/ovs-replay.c:69,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:69,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
            - BranchSide:      'lib/ovs-replay.c:69,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
      Callsites:
        - Src:             'lib/ovs-replay.c:69,5'
          Dst:             ovs_mutex_lock_at
    - functionName:    fwrite
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_replay_unlock
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_unlock
      functionUses:    12
      BranchProfiles:
        - Branch String:   'lib/ovs-replay.c:76,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:76,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
            - BranchSide:      'lib/ovs-replay.c:76,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/ovs-replay.c:76,5'
          Dst:             ovs_mutex_unlock
    - functionName:    fflush
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_replay_file_close
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - f
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fclose
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-replay.c:160,5'
          Dst:             fclose
    - functionName:    ovs_replay_file_name
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - name
        - seqno
      BBCount:         24
      ICount:          151
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - __ctype_b_loc
        - vlog
        - xasprintf
        - xstrdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-replay.c:98,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:99,15'
              BranchSideFuncs:
                - __ctype_b_loc
                - xasprintf
                - free
                - vlog
            - BranchSide:      'lib/ovs-replay.c:109,9'
              BranchSideFuncs:
                - xasprintf
                - free
                - vlog
        - Branch String:   'lib/ovs-replay.c:99,14'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:100,19'
              BranchSideFuncs:
                - xasprintf
                - free
                - vlog
                - __ctype_b_loc
            - BranchSide:      'lib/ovs-replay.c:105,22'
              BranchSideFuncs:
                - xasprintf
                - free
                - vlog
                - __ctype_b_loc
        - Branch String:   'lib/ovs-replay.c:100,18'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:101,19'
              BranchSideFuncs:
                - xasprintf
                - free
                - vlog
                - __ctype_b_loc
            - BranchSide:      'lib/ovs-replay.c:104,10'
              BranchSideFuncs:
                - xasprintf
                - free
                - vlog
                - __ctype_b_loc
        - Branch String:   'lib/ovs-replay.c:109,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:110,10'
              BranchSideFuncs:
                - xasprintf
                - free
                - vlog
            - BranchSide:      'lib/ovs-replay.c:112,6'
              BranchSideFuncs:
                - xasprintf
                - free
                - vlog
        - Branch String:   'lib/ovs-replay.c:113,45'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:113,55'
              BranchSideFuncs:
                - xasprintf
                - free
                - vlog
            - BranchSide:      'lib/ovs-replay.c:114,45'
              BranchSideFuncs:
                - xasprintf
                - free
                - vlog
        - Branch String:   'lib/ovs-replay.c:115,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:115,5'
              BranchSideFuncs:
                - vlog
                - free
            - BranchSide:      'lib/ovs-replay.c:115,5'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'lib/ovs-replay.c:89,24'
          Dst:             xstrdup
        - Src:             'lib/ovs-replay.c:99,15'
          Dst:             __ctype_b_loc
        - Src:             'lib/ovs-replay.c:113,16'
          Dst:             xasprintf
        - Src:             'lib/ovs-replay.c:115,5'
          Dst:             vlog
    - functionName:    ovs_replay_file_open
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - f
        - seqno
      BBCount:         24
      ICount:          160
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - abs_file_name
        - fopen
        - fread
        - ovs_replay_file_name
        - ovs_replay_get_state
        - ovs_rundir
        - ovs_strerror
        - vlog
        - vlog_rate_limit
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/ovs-replay.c:132,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:133,35'
              BranchSideFuncs:
                - ovs_rundir
                - abs_file_name
                - free
                - fopen
                - free
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog_rate_limit
                - free
                - fread
                - vlog
            - BranchSide:      'lib/ovs-replay.c:136,21'
              BranchSideFuncs:
                - fopen
                - free
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog_rate_limit
                - free
                - fread
                - vlog
        - Branch String:   'lib/ovs-replay.c:140,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:141,9'
              BranchSideFuncs:
                - free
                - fread
                - vlog
            - BranchSide:      'lib/ovs-replay.c:146,10'
              BranchSideFuncs:
                - free
                - fread
                - vlog
        - Branch String:   'lib/ovs-replay.c:141,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:141,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog_rate_limit
                - free
                - __errno_location
            - BranchSide:      'lib/ovs-replay.c:143,14'
              BranchSideFuncs:
                - free
                - __errno_location
        - Branch String:   'lib/ovs-replay.c:149,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:149,18'
              BranchSideFuncs:
                - fread
                - vlog
            - BranchSide:      'lib/ovs-replay.c:153,17'
              BranchSideFuncs: []
        - Branch String:   'lib/ovs-replay.c:148,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:150,9'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/ovs-replay.c:153,17'
              BranchSideFuncs: []
        - Branch String:   'lib/ovs-replay.c:150,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:150,9'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/ovs-replay.c:151,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-replay.c:127,17'
          Dst:             ovs_replay_get_state
        - Src:             'lib/ovs-replay.c:131,16'
          Dst:             ovs_replay_file_name
        - Src:             'lib/ovs-replay.c:133,35'
          Dst:             ovs_rundir
        - Src:             'lib/ovs-replay.c:133,21'
          Dst:             abs_file_name
        - Src:             'lib/ovs-replay.c:139,10'
          Dst:             fopen
        - Src:             'lib/ovs-replay.c:141,9'
          Dst:             __errno_location
        - Src:             'lib/ovs-replay.c:141,9'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-replay.c:141,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/ovs-replay.c:144,16'
          Dst:             __errno_location
        - Src:             'lib/ovs-replay.c:149,12'
          Dst:             fread
        - Src:             'lib/ovs-replay.c:150,9'
          Dst:             vlog
    - functionName:    ovs_replay_seqno
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_replay_set_dirname
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - new_dirname
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - xstrdup
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-replay.c:59,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.c:59,9'
              BranchSideFuncs:
                - free
                - xstrdup
            - BranchSide:      'lib/ovs-replay.c:60,14'
              BranchSideFuncs:
                - free
                - xstrdup
      Callsites:
        - Src:             'lib/ovs-replay.c:61,19'
          Dst:             xstrdup
    - functionName:    ovs_replay_set_state
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - state
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_this_module_ovs_thread
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:45,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:45,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/ovs-thread.c:45,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/ovs-thread.c:45,1'
          Dst:             vlog_insert_module
    - functionName:    ovs_list_insert
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - before
        - elem
      BBCount:         1
      ICount:          30
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_id_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_refcount_ref
      functionSourceFile: '/src/openvswitch/lib/ovs-atomic.h'
      linkageType:     InternalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 547
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - refcount
      BBCount:         1
      ICount:          23
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_refcount_unref
      functionSourceFile: '/src/openvswitch/lib/ovs-atomic.h'
      linkageType:     InternalLinkage
      functionLinenumber: 564
      functionLinenumberEnd: 578
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - refcount
      BBCount:         4
      ICount:          37
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-atomic.h:570,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-atomic.h:570,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/ovs-atomic.h:576,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ovsthread_getspecific
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 919
      functionLinenumberEnd: 920
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsthread_key_lookup__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:920,13'
          Dst:             ovsthread_key_lookup__
    - functionName:    ovsthread_key_lookup__
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 881
      functionLinenumberEnd: 901
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
      BBCount:         9
      ICount:          82
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_list_push_back
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - pthread_getspecific
        - pthread_setspecific
        - xzalloc
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:886,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:887,17'
              BranchSideFuncs:
                - xzalloc
            - BranchSide:      'lib/ovs-thread.c:895,10'
              BranchSideFuncs:
                - xzalloc
        - Branch String:   'lib/ovs-thread.c:896,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:896,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/ovs-thread.c:897,14'
              BranchSideFuncs:
                - xzalloc
      Callsites:
        - Src:             'lib/ovs-thread.c:885,13'
          Dst:             pthread_getspecific
        - Src:             'lib/ovs-thread.c:887,17'
          Dst:             xzalloc
        - Src:             'lib/ovs-thread.c:889,9'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/ovs-thread.c:890,9'
          Dst:             pthread_setspecific
        - Src:             'lib/ovs-thread.c:891,9'
          Dst:             ovs_list_push_back
        - Src:             'lib/ovs-thread.c:892,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/ovs-thread.c:897,14'
          Dst:             xzalloc
    - functionName:    pthread_getspecific
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_mutex_lock_at
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - l_
        - where
      BBCount:         7
      ICount:          70
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_mutex_lock
        - vlog_abort
      functionUses:    64
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:77,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:77,1'
              BranchSideFuncs:
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:77,1'
              BranchSideFuncs:
                - pthread_mutex_lock
                - ovs_strerror
                - vlog_abort
        - Branch String:   'lib/ovs-thread.c:77,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:77,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:77,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:77,1'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:77,1'
          Dst:             pthread_mutex_lock
        - Src:             'lib/ovs-thread.c:77,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:77,1'
          Dst:             vlog_abort
    - functionName:    pthread_setspecific
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_push_back
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
        - elem
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_insert
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:205,5'
          Dst:             ovs_list_insert
    - functionName:    ovs_mutex_unlock
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - l_
      BBCount:         5
      ICount:          53
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_mutex_unlock
        - vlog_abort
      functionUses:    70
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:134,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:134,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:134,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:134,1'
          Dst:             pthread_mutex_unlock
        - Src:             'lib/ovs-thread.c:134,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:134,1'
          Dst:             vlog_abort
    - functionName:    pthread_mutex_unlock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_mutex_lock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_setspecific
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 910
      functionLinenumberEnd: 912
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
        - value
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsthread_key_lookup__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:911,6'
          Dst:             ovsthread_key_lookup__
    - functionName:    clear_slot
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 768
      functionLinenumberEnd: 778
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - slots
        - index
      BBCount:         4
      ICount:          51
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:770,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:771,26'
              BranchSideFuncs: []
            - BranchSide:      'lib/ovs-thread.c:776,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ovs_list_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - elem
      BBCount:         1
      ICount:          26
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_key_delete
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 862
      functionLinenumberEnd: 877
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
      BBCount:         10
      ICount:          65
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - clear_slot
        - ovs_list_push_back
        - ovs_list_remove
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:872,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:872,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - clear_slot
            - BranchSide:      'lib/ovs-thread.c:872,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - clear_slot
        - Branch String:   'lib/ovs-thread.c:872,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:873,20'
              BranchSideFuncs:
                - clear_slot
                - ovs_mutex_unlock
            - BranchSide:      'lib/ovs-thread.c:876,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/ovs-thread.c:865,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/ovs-thread.c:868,5'
          Dst:             ovs_list_remove
        - Src:             'lib/ovs-thread.c:869,5'
          Dst:             ovs_list_push_back
        - Src:             'lib/ovs-thread.c:873,9'
          Dst:             clear_slot
        - Src:             'lib/ovs-thread.c:876,5'
          Dst:             ovs_mutex_unlock
    - functionName:    ovs_list_pop_back
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:275,5'
          Dst:             ovs_list_remove
    - functionName:    ovs_list_is_empty
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_cancel_ovsthread_key_destruct__
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 813
      functionLinenumberEnd: 815
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - aux
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_setspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:814,5'
          Dst:             pthread_setspecific
    - functionName:    ovsthread_key_destruct__
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 782
      functionLinenumberEnd: 803
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - slots_
      BBCount:         19
      ICount:          128
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - clear_slot
        - ovs_list_remove
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:790,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:790,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - free
                - free
                - clear_slot
            - BranchSide:      'lib/ovs-thread.c:790,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - free
                - free
                - clear_slot
        - Branch String:   'lib/ovs-thread.c:790,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:791,34'
              BranchSideFuncs:
                - clear_slot
                - ovs_mutex_unlock
                - free
                - free
            - BranchSide:      'lib/ovs-thread.c:796,9'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - free
                - free
        - Branch String:   'lib/ovs-thread.c:792,19'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:792,22'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - free
                - free
                - clear_slot
            - BranchSide:      'lib/ovs-thread.c:795,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - free
                - free
                - clear_slot
        - Branch String:   'lib/ovs-thread.c:792,13'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:793,13'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - free
                - free
                - clear_slot
            - BranchSide:      'lib/ovs-thread.c:795,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - free
                - free
                - clear_slot
        - Branch String:   'lib/ovs-thread.c:799,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:800,14'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'lib/ovs-thread.c:802,10'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'lib/ovs-thread.c:788,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/ovs-thread.c:789,5'
          Dst:             ovs_list_remove
        - Src:             'lib/ovs-thread.c:791,23'
          Dst:             clear_slot
        - Src:             'lib/ovs-thread.c:797,5'
          Dst:             ovs_mutex_unlock
    - functionName:    ovsthread_key_create
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 827
      functionLinenumberEnd: 854
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - keyp
        - destructor
      BBCount:         11
      ICount:          76
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - abort
        - fatal_signal_add_hook
        - ovs_list_is_empty
        - ovs_list_pop_back
        - ovs_list_push_back
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovsthread_cancel_ovsthread_key_destruct__
        - ovsthread_key_destruct__
        - ovsthread_once_done
        - ovsthread_once_start
        - xmalloc
        - xpthread_key_create
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:831,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:832,9'
              BranchSideFuncs:
                - xpthread_key_create
                - fatal_signal_add_hook
                - ovsthread_once_done
                - ovs_mutex_lock_at
                - ovs_list_is_empty.698
                - ovs_list_pop_back
                - ovs_list_push_back.687
                - ovs_mutex_unlock
                - xmalloc
                - abort
            - BranchSide:      'lib/ovs-thread.c:838,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_list_is_empty.698
                - ovs_list_pop_back
                - ovs_list_push_back.687
                - ovs_mutex_unlock
                - xmalloc
                - abort
        - Branch String:   'lib/ovs-thread.c:839,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:840,15'
              BranchSideFuncs:
                - xmalloc
                - ovs_list_push_back.687
                - ovs_mutex_unlock
                - abort
            - BranchSide:      'lib/ovs-thread.c:846,15'
              BranchSideFuncs:
                - ovs_list_pop_back
                - ovs_list_push_back.687
                - ovs_mutex_unlock
        - Branch String:   'lib/ovs-thread.c:842,13'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:843,13'
              BranchSideFuncs:
                - abort
            - BranchSide:      'lib/ovs-thread.c:845,5'
              BranchSideFuncs:
                - ovs_list_push_back.687
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/ovs-thread.c:831,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/ovs-thread.c:832,9'
          Dst:             xpthread_key_create
        - Src:             'lib/ovs-thread.c:832,9'
          Dst:             ovsthread_key_destruct__
        - Src:             'lib/ovs-thread.c:833,9'
          Dst:             fatal_signal_add_hook
        - Src:             'lib/ovs-thread.c:833,9'
          Dst:             ovsthread_cancel_ovsthread_key_destruct__
        - Src:             'lib/ovs-thread.c:835,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/ovs-thread.c:838,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/ovs-thread.c:839,9'
          Dst:             ovs_list_is_empty
        - Src:             'lib/ovs-thread.c:840,15'
          Dst:             xmalloc
        - Src:             'lib/ovs-thread.c:843,13'
          Dst:             abort
        - Src:             'lib/ovs-thread.c:846,15'
          Dst:             ovs_list_pop_back
        - Src:             'lib/ovs-thread.c:849,5'
          Dst:             ovs_list_push_back
        - Src:             'lib/ovs-thread.c:851,5'
          Dst:             ovs_mutex_unlock
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - once
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/thread.h:161,12'
          Branch Sides:
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs:
                - ovsthread_once_start__
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    xpthread_key_create
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg1
        - arg2
      BBCount:         5
      ICount:          43
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_key_create
        - vlog_abort
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:193,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:193,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:193,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:193,1'
          Dst:             pthread_key_create
        - Src:             'lib/ovs-thread.c:193,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:193,1'
          Dst:             vlog_abort
    - functionName:    ovsthread_once_done
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 517
      functionLinenumberEnd: 525
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - once
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_unlock
      functionUses:    21
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:524,5'
          Dst:             ovs_mutex_unlock
    - functionName:    pthread_key_create
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_once_start__
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 505
      functionLinenumberEnd: 513
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - once
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    12
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:508,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:509,9'
              BranchSideFuncs:
                - ovs_mutex_unlock
            - BranchSide:      'lib/ovs-thread.c:511,23'
              BranchSideFuncs:
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/ovs-thread.c:506,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/ovs-thread.c:511,5'
          Dst:             ovs_mutex_unlock
    - functionName:    thread_is_pmd
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 713
      functionLinenumberEnd: 715
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_subprogram_name
        - strncmp
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:714,24'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:714,17'
              BranchSideFuncs:
                - get_subprogram_name
                - strncmp
            - BranchSide:      'lib/ovs-thread.c:714,24'
              BranchSideFuncs:
                - get_subprogram_name
                - strncmp
      Callsites:
        - Src:             'lib/ovs-thread.c:714,24'
          Dst:             get_subprogram_name
        - Src:             'lib/ovs-thread.c:715,13'
          Dst:             strncmp
    - functionName:    strncmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    15
      BranchProfiles:  []
      Callsites:       []
    - functionName:    count_total_cores
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 697
      functionLinenumberEnd: 707
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sysconf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:701,15'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:698,14'
              BranchSideFuncs:
                - sysconf
            - BranchSide:      'lib/ovs-thread.c:701,15'
              BranchSideFuncs:
                - sysconf
        - Branch String:   'lib/ovs-thread.c:707,12'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:707,26'
              BranchSideFuncs: []
            - BranchSide:      'lib/ovs-thread.c:707,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:701,15'
          Dst:             sysconf
    - functionName:    sysconf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    count_cpu_cores__
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 641
      functionLinenumberEnd: 665
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          81
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __sched_cpualloc
        - __sched_cpucount
        - __sched_cpufree
        - sched_getaffinity
        - sysconf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:645,15'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:642,14'
              BranchSideFuncs:
                - sysconf
                - __sched_cpualloc
                - sched_getaffinity
                - __sched_cpucount
                - __sched_cpufree
            - BranchSide:      'lib/ovs-thread.c:645,15'
              BranchSideFuncs:
                - sysconf
                - __sched_cpualloc
                - sched_getaffinity
                - __sched_cpucount
                - __sched_cpufree
        - Branch String:   'lib/ovs-thread.c:652,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:653,26'
              BranchSideFuncs:
                - __sched_cpualloc
                - sched_getaffinity
                - __sched_cpucount
                - __sched_cpufree
            - BranchSide:      'lib/ovs-thread.c:665,12'
              BranchSideFuncs: []
        - Branch String:   'lib/ovs-thread.c:655,13'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:656,27'
              BranchSideFuncs:
                - sched_getaffinity
                - __sched_cpucount
                - __sched_cpufree
            - BranchSide:      'lib/ovs-thread.c:663,5'
              BranchSideFuncs: []
        - Branch String:   'lib/ovs-thread.c:658,17'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:659,27'
              BranchSideFuncs:
                - __sched_cpufree
            - BranchSide:      'lib/ovs-thread.c:661,13'
              BranchSideFuncs:
                - __sched_cpufree
        - Branch String:   'lib/ovs-thread.c:665,12'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:665,26'
              BranchSideFuncs: []
            - BranchSide:      'lib/ovs-thread.c:665,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:645,15'
          Dst:             sysconf
        - Src:             'lib/ovs-thread.c:653,26'
          Dst:             __sched_cpualloc
        - Src:             'lib/ovs-thread.c:658,18'
          Dst:             sched_getaffinity
        - Src:             'lib/ovs-thread.c:659,27'
          Dst:             __sched_cpucount
        - Src:             'lib/ovs-thread.c:661,13'
          Dst:             __sched_cpufree
    - functionName:    __sched_cpualloc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sched_getaffinity
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __sched_cpucount
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __sched_cpufree
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    count_cpu_cores
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 679
      functionLinenumberEnd: 690
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - count_cpu_cores__
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - time_msec
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:681,25'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:681,19'
              BranchSideFuncs:
                - time_msec
                - ovs_mutex_lock_at
                - count_cpu_cores__
                - ovs_mutex_unlock
            - BranchSide:      'lib/ovs-thread.c:681,25'
              BranchSideFuncs:
                - time_msec
                - ovs_mutex_lock_at
                - count_cpu_cores__
                - ovs_mutex_unlock
        - Branch String:   'lib/ovs-thread.c:685,23'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:685,26'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - count_cpu_cores__
            - BranchSide:      'lib/ovs-thread.c:686,24'
              BranchSideFuncs:
                - count_cpu_cores__
                - ovs_mutex_unlock
        - Branch String:   'lib/ovs-thread.c:685,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:685,9'
              BranchSideFuncs:
                - count_cpu_cores__
                - ovs_mutex_unlock
            - BranchSide:      'lib/ovs-thread.c:686,24'
              BranchSideFuncs:
                - count_cpu_cores__
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/ovs-thread.c:681,25'
          Dst:             time_msec
        - Src:             'lib/ovs-thread.c:684,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/ovs-thread.c:687,21'
          Dst:             count_cpu_cores__
        - Src:             'lib/ovs-thread.c:689,5'
          Dst:             ovs_mutex_unlock
    - functionName:    ovs_thread_stats_next_bucket
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 629
      functionLinenumberEnd: 635
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - stats
        - i
      BBCount:         8
      ICount:          39
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:630,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:630,5'
              BranchSideFuncs: []
            - BranchSide:      'lib/ovs-thread.c:631,13'
              BranchSideFuncs: []
        - Branch String:   'lib/ovs-thread.c:631,13'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:632,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/ovs-thread.c:634,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ovsthread_id_self
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_id_get
        - ovsthread_id_init
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.h:468,24'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.h:468,18'
              BranchSideFuncs:
                - ovsthread_id_get
                - ovsthread_id_init
            - BranchSide:      'lib/ovs-thread.h:468,24'
              BranchSideFuncs:
                - ovsthread_id_get
                - ovsthread_id_init
        - Branch String:   'lib/ovs-thread.h:470,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.h:470,9'
              BranchSideFuncs:
                - ovsthread_id_init
            - BranchSide:      'lib/ovs-thread.h:471,14'
              BranchSideFuncs:
                - ovsthread_id_init
      Callsites:
        - Src:             'lib/ovs-thread.h:468,24'
          Dst:             ovsthread_id_get
        - Src:             'lib/ovs-thread.h:471,14'
          Dst:             ovsthread_id_init
    - functionName:    ovsthread_id_get
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsthread_id_get_unsafe
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.h:458,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.h:458,1'
              BranchSideFuncs:
                - ovsthread_id_get_unsafe
            - BranchSide:      'lib/ovs-thread.h:458,1'
              BranchSideFuncs:
                - ovsthread_id_get_unsafe
      Callsites:
        - Src:             'lib/ovs-thread.h:458,1'
          Dst:             ovsthread_id_get_unsafe
    - functionName:    ovsthread_id_init
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 407
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - atomic_count_inc
        - ovsthread_id_get
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:406,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:406,5'
              BranchSideFuncs:
                - ovsthread_id_get
                - atomic_count_inc.706
                - ovsthread_id_get
            - BranchSide:      'lib/ovs-thread.c:406,5'
              BranchSideFuncs:
                - ovsthread_id_get
                - atomic_count_inc.706
                - ovsthread_id_get
      Callsites:
        - Src:             'lib/ovs-thread.c:406,5'
          Dst:             ovsthread_id_get
        - Src:             'lib/ovs-thread.c:407,34'
          Dst:             atomic_count_inc
        - Src:             'lib/ovs-thread.c:407,13'
          Dst:             ovsthread_id_get
    - functionName:    atomic_count_inc
      functionSourceFile: '/src/openvswitch/lib/ovs-atomic.h'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - count
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_stats_bucket_get
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 613
      functionLinenumberEnd: 624
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - stats
        - new_bucket
      BBCount:         9
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovsthread_id_self
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:616,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:616,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/ovs-thread.c:617,9'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
        - Branch String:   'lib/ovs-thread.c:619,13'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:620,44'
              BranchSideFuncs:
                - ovs_mutex_unlock
            - BranchSide:      'lib/ovs-thread.c:622,27'
              BranchSideFuncs:
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/ovs-thread.c:614,24'
          Dst:             ovsthread_id_self
        - Src:             'lib/ovs-thread.c:617,9'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/ovs-thread.c:622,9'
          Dst:             ovs_mutex_unlock
    - functionName:    ovsthread_stats_destroy
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 606
      functionLinenumberEnd: 608
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stats
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_destroy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:607,5'
          Dst:             ovs_mutex_destroy
    - functionName:    ovs_mutex_destroy
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - l_
      BBCount:         5
      ICount:          53
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_mutex_destroy
        - vlog_abort
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:135,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:135,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:135,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:135,1'
          Dst:             pthread_mutex_destroy
        - Src:             'lib/ovs-thread.c:135,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:135,1'
          Dst:             vlog_abort
    - functionName:    pthread_mutex_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_stats_init
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 595
      functionLinenumberEnd: 602
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stats
      BBCount:         7
      ICount:          43
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_mutex_init
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:599,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:600,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/ovs-thread.c:602,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:598,5'
          Dst:             ovs_mutex_init
    - functionName:    ovs_mutex_init
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_init__
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:222,5'
          Dst:             ovs_mutex_init__
    - functionName:    ovs_mutex_init__
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - l_
        - type
      BBCount:         5
      ICount:          56
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_mutex_init
        - vlog_abort
        - xpthread_mutexattr_destroy
        - xpthread_mutexattr_init
        - xpthread_mutexattr_settype
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:212,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:213,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:215,5'
              BranchSideFuncs:
                - xpthread_mutexattr_destroy
      Callsites:
        - Src:             'lib/ovs-thread.c:209,5'
          Dst:             xpthread_mutexattr_init
        - Src:             'lib/ovs-thread.c:210,5'
          Dst:             xpthread_mutexattr_settype
        - Src:             'lib/ovs-thread.c:211,13'
          Dst:             pthread_mutex_init
        - Src:             'lib/ovs-thread.c:213,9'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:213,9'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:215,5'
          Dst:             xpthread_mutexattr_destroy
    - functionName:    xpthread_mutexattr_init
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg1
      BBCount:         5
      ICount:          39
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_mutexattr_init
        - vlog_abort
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:174,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:174,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:174,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:174,1'
          Dst:             pthread_mutexattr_init
        - Src:             'lib/ovs-thread.c:174,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:174,1'
          Dst:             vlog_abort
    - functionName:    xpthread_mutexattr_settype
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - arg1
        - arg2
      BBCount:         5
      ICount:          43
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_mutexattr_settype
        - vlog_abort
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:176,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:176,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:176,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:176,1'
          Dst:             pthread_mutexattr_settype
        - Src:             'lib/ovs-thread.c:176,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:176,1'
          Dst:             vlog_abort
    - functionName:    pthread_mutex_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xpthread_mutexattr_destroy
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg1
      BBCount:         5
      ICount:          39
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_mutexattr_destroy
        - vlog_abort
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:175,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:175,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:175,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:175,1'
          Dst:             pthread_mutexattr_destroy
        - Src:             'lib/ovs-thread.c:175,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:175,1'
          Dst:             vlog_abort
    - functionName:    pthread_mutexattr_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_mutexattr_settype
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_mutexattr_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    may_fork
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 587
      functionLinenumberEnd: 588
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xfork_at
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 558
      functionLinenumberEnd: 570
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - where
      BBCount:         7
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - fork
        - ovs_strerror
        - vlog_fatal
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:561,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:562,9'
              BranchSideFuncs:
                - vlog_fatal
            - BranchSide:      'lib/ovs-thread.c:566,11'
              BranchSideFuncs:
                - fork
                - __errno_location
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/ovs-thread.c:567,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:568,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/ovs-thread.c:570,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:562,9'
          Dst:             vlog_fatal
        - Src:             'lib/ovs-thread.c:566,11'
          Dst:             fork
        - Src:             'lib/ovs-thread.c:568,9'
          Dst:             __errno_location
        - Src:             'lib/ovs-thread.c:568,9'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:568,9'
          Dst:             vlog_fatal
    - functionName:    fork
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    assert_single_threaded_at
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 546
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - where
      BBCount:         5
      ICount:          26
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_fatal
      functionUses:    10
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:542,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:543,9'
              BranchSideFuncs:
                - vlog_fatal
            - BranchSide:      'lib/ovs-thread.c:546,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:543,9'
          Dst:             vlog_fatal
    - functionName:    single_threaded
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 530
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_wrapper
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - aux_
      BBCount:         3
      ICount:          47
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsrcu_quiesce_end
        - ovsthread_id_init
        - set_subprogram_name
        - xasprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:417,10'
          Dst:             ovsthread_id_init
        - Src:             'lib/ovs-thread.c:424,29'
          Dst:             xasprintf
        - Src:             'lib/ovs-thread.c:425,5'
          Dst:             set_subprogram_name
        - Src:             'lib/ovs-thread.c:427,5'
          Dst:             ovsrcu_quiesce_end
    - functionName:    set_min_stack_size
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 434
      functionLinenumberEnd: 451
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - attr
        - min_stacksize
      BBCount:         10
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_strerror
        - pthread_attr_getstacksize
        - pthread_attr_setstacksize
        - vlog_abort
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:439,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:440,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:444,9'
              BranchSideFuncs:
                - pthread_attr_setstacksize
                - ovs_strerror
                - vlog_abort
        - Branch String:   'lib/ovs-thread.c:444,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:444,9'
              BranchSideFuncs:
                - pthread_attr_setstacksize
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:445,43'
              BranchSideFuncs:
                - pthread_attr_setstacksize
                - ovs_strerror
                - vlog_abort
        - Branch String:   'lib/ovs-thread.c:446,13'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:447,13'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:450,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:438,13'
          Dst:             pthread_attr_getstacksize
        - Src:             'lib/ovs-thread.c:440,9'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:440,9'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:445,17'
          Dst:             pthread_attr_setstacksize
        - Src:             'lib/ovs-thread.c:447,13'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:447,13'
          Dst:             vlog_abort
    - functionName:    pthread_attr_getstacksize
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_attr_setstacksize
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    forbid_forking
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 579
      functionLinenumberEnd: 582
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - reason
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_thread_create
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 457
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - start
        - arg
      BBCount:         8
      ICount:          78
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - forbid_forking
        - ovs_strerror
        - ovs_strlcpy
        - ovsrcu_quiesce_end
        - ovsthread_once_done
        - ovsthread_once_start
        - ovsthread_wrapper
        - pthread_attr_destroy
        - pthread_attr_init
        - pthread_create
        - set_min_stack_size
        - vlog_abort
        - xmalloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:465,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:476,9'
              BranchSideFuncs:
                - ovsrcu_quiesce_end
                - ovsthread_once_done
                - xmalloc
                - ovs_strlcpy
                - pthread_attr_init
                - set_min_stack_size
                - pthread_create
                - pthread_attr_destroy
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:480,19'
              BranchSideFuncs:
                - xmalloc
                - ovs_strlcpy
                - pthread_attr_init
                - set_min_stack_size
                - pthread_create
                - pthread_attr_destroy
                - ovs_strerror
                - vlog_abort
        - Branch String:   'lib/ovs-thread.c:496,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:497,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:499,5'
              BranchSideFuncs:
                - pthread_attr_destroy
      Callsites:
        - Src:             'lib/ovs-thread.c:463,5'
          Dst:             forbid_forking
        - Src:             'lib/ovs-thread.c:465,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/ovs-thread.c:476,9'
          Dst:             ovsrcu_quiesce_end
        - Src:             'lib/ovs-thread.c:477,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/ovs-thread.c:481,11'
          Dst:             xmalloc
        - Src:             'lib/ovs-thread.c:484,5'
          Dst:             ovs_strlcpy
        - Src:             'lib/ovs-thread.c:492,5'
          Dst:             pthread_attr_init
        - Src:             'lib/ovs-thread.c:493,5'
          Dst:             set_min_stack_size
        - Src:             'lib/ovs-thread.c:495,13'
          Dst:             pthread_create
        - Src:             'lib/ovs-thread.c:495,13'
          Dst:             ovsthread_wrapper
        - Src:             'lib/ovs-thread.c:497,9'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:497,9'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:499,5'
          Dst:             pthread_attr_destroy
    - functionName:    pthread_attr_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_create
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_attr_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    atomic_count_set
      functionSourceFile: '/src/openvswitch/lib/ovs-atomic.h'
      linkageType:     InternalLinkage
      functionLinenumber: 483
      functionLinenumberEnd: 485
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - count
        - value
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_barrier_impl_ref
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - impl
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_refcount_ref
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:319,5'
          Dst:             ovs_refcount_ref
    - functionName:    ovs_barrier_block
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 391
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - barrier
      BBCount:         9
      ICount:          93
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - atomic_count_inc
        - atomic_count_set
        - ovs_barrier_impl_ref
        - ovs_barrier_impl_unref
        - poll_block
        - seq_change
        - seq_read
        - seq_wait_at
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:376,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:377,27'
              BranchSideFuncs:
                - atomic_count_set
                - seq_change
                - ovs_barrier_impl_unref
            - BranchSide:      'lib/ovs-thread.c:384,9'
              BranchSideFuncs:
                - seq_read
                - ovs_barrier_impl_unref
                - seq_wait_at
                - poll_block
        - Branch String:   'lib/ovs-thread.c:384,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:0,0'
              BranchSideFuncs:
                - seq_wait_at
                - poll_block
                - seq_read
                - ovs_barrier_impl_unref
            - BranchSide:      'lib/ovs-thread.c:385,13'
              BranchSideFuncs:
                - seq_wait_at
                - poll_block
                - seq_read
                - ovs_barrier_impl_unref
      Callsites:
        - Src:             'lib/ovs-thread.c:372,5'
          Dst:             ovs_barrier_impl_ref
        - Src:             'lib/ovs-thread.c:374,11'
          Dst:             seq_read
        - Src:             'lib/ovs-thread.c:375,12'
          Dst:             atomic_count_inc
        - Src:             'lib/ovs-thread.c:377,9'
          Dst:             atomic_count_set
        - Src:             'lib/ovs-thread.c:380,9'
          Dst:             seq_change
        - Src:             'lib/ovs-thread.c:384,23'
          Dst:             seq_read
        - Src:             'lib/ovs-thread.c:385,13'
          Dst:             seq_wait_at
        - Src:             'lib/ovs-thread.c:386,13'
          Dst:             poll_block
        - Src:             'lib/ovs-thread.c:390,5'
          Dst:             ovs_barrier_impl_unref
    - functionName:    ovs_barrier_impl_unref
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 329
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - impl
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_refcount_unref
        - seq_destroy
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:325,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:325,9'
              BranchSideFuncs:
                - seq_destroy
                - free
            - BranchSide:      'lib/ovs-thread.c:326,21'
              BranchSideFuncs:
                - seq_destroy
                - free
      Callsites:
        - Src:             'lib/ovs-thread.c:325,9'
          Dst:             ovs_refcount_unref
        - Src:             'lib/ovs-thread.c:326,9'
          Dst:             seq_destroy
    - functionName:    ovs_barrier_destroy
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 350
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - barrier
      BBCount:         7
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 8
      functionsReached:
        - ovs_barrier_impl_unref
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:354,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:354,5'
              BranchSideFuncs:
                - ovs_barrier_impl_unref
            - BranchSide:      'lib/ovs-thread.c:354,5'
              BranchSideFuncs:
                - ovs_barrier_impl_unref
            - BranchSide:      'lib/ovs-thread.c:354,5'
              BranchSideFuncs:
                - ovs_barrier_impl_unref
      Callsites:
        - Src:             'lib/ovs-thread.c:355,5'
          Dst:             ovs_barrier_impl_unref
    - functionName:    ovs_refcount_init
      functionSourceFile: '/src/openvswitch/lib/ovs-atomic.h'
      linkageType:     InternalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 533
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - refcount
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    atomic_count_init
      functionSourceFile: '/src/openvswitch/lib/ovs-atomic.h'
      linkageType:     InternalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - count
        - value
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_barrier_init
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - barrier
        - size
      BBCount:         7
      ICount:          77
      EdgeCount:       13
      CyclomaticComplexity: 8
      functionsReached:
        - atomic_count_init
        - ovs_refcount_init
        - seq_create
        - xmalloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:344,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:344,5'
              BranchSideFuncs: []
            - BranchSide:      'lib/ovs-thread.c:344,5'
              BranchSideFuncs: []
            - BranchSide:      'lib/ovs-thread.c:344,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:338,12'
          Dst:             xmalloc
        - Src:             'lib/ovs-thread.c:340,5'
          Dst:             atomic_count_init
        - Src:             'lib/ovs-thread.c:341,17'
          Dst:             seq_create
        - Src:             'lib/ovs-thread.c:342,5'
          Dst:             ovs_refcount_init
    - functionName:    ovs_spin_init__
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - l_
        - pshared
      BBCount:         5
      ICount:          51
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_spin_init
        - vlog_abort
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:297,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:298,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:300,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:296,13'
          Dst:             pthread_spin_init
        - Src:             'lib/ovs-thread.c:298,9'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:298,9'
          Dst:             vlog_abort
    - functionName:    pthread_spin_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_spin_init
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - spin
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_spin_init__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:305,5'
          Dst:             ovs_spin_init__
    - functionName:    ovs_mutex_cond_wait
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cond
        - mutex_
      BBCount:         5
      ICount:          48
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_cond_wait
        - vlog_abort
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:283,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:284,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:286,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:281,13'
          Dst:             pthread_cond_wait
        - Src:             'lib/ovs-thread.c:284,9'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:284,9'
          Dst:             vlog_abort
    - functionName:    pthread_cond_wait
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_rwlock_init
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - l_
      BBCount:         5
      ICount:          52
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_rwlock_init
        - vlog_abort
        - xpthread_rwlockattr_destroy
        - xpthread_rwlockattr_init
        - xpthread_rwlockattr_setkind_np
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:265,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:266,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:268,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:253,5'
          Dst:             xpthread_rwlockattr_init
        - Src:             'lib/ovs-thread.c:254,5'
          Dst:             xpthread_rwlockattr_setkind_np
        - Src:             'lib/ovs-thread.c:256,13'
          Dst:             pthread_rwlock_init
        - Src:             'lib/ovs-thread.c:257,5'
          Dst:             xpthread_rwlockattr_destroy
        - Src:             'lib/ovs-thread.c:266,9'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:266,9'
          Dst:             vlog_abort
    - functionName:    xpthread_rwlockattr_init
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg1
      BBCount:         5
      ICount:          39
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_rwlockattr_init
        - vlog_abort
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:179,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:179,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:179,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:179,1'
          Dst:             pthread_rwlockattr_init
        - Src:             'lib/ovs-thread.c:179,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:179,1'
          Dst:             vlog_abort
    - functionName:    xpthread_rwlockattr_setkind_np
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - arg1
        - arg2
      BBCount:         5
      ICount:          43
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_rwlockattr_setkind_np
        - vlog_abort
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:182,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:182,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:182,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:182,1'
          Dst:             pthread_rwlockattr_setkind_np
        - Src:             'lib/ovs-thread.c:182,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:182,1'
          Dst:             vlog_abort
    - functionName:    pthread_rwlock_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xpthread_rwlockattr_destroy
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg1
      BBCount:         5
      ICount:          39
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_rwlockattr_destroy
        - vlog_abort
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:180,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:180,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:180,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:180,1'
          Dst:             pthread_rwlockattr_destroy
        - Src:             'lib/ovs-thread.c:180,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:180,1'
          Dst:             vlog_abort
    - functionName:    pthread_rwlockattr_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_rwlockattr_setkind_np
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_rwlockattr_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_mutex_init_adaptive
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_init__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:237,5'
          Dst:             ovs_mutex_init__
    - functionName:    ovs_mutex_init_recursive
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_init__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-thread.c:229,5'
          Dst:             ovs_mutex_init__
    - functionName:    xpthread_sigmask
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg1
        - arg2
        - arg3
      BBCount:         5
      ICount:          47
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_sigmask
        - vlog_abort
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:198,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:198,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:198,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:198,1'
          Dst:             pthread_sigmask
        - Src:             'lib/ovs-thread.c:198,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:198,1'
          Dst:             vlog_abort
    - functionName:    pthread_sigmask
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xpthread_setspecific
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg1
        - arg2
      BBCount:         5
      ICount:          43
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_setspecific
        - vlog_abort
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:195,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:195,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:195,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:195,1'
          Dst:             pthread_setspecific
        - Src:             'lib/ovs-thread.c:195,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:195,1'
          Dst:             vlog_abort
    - functionName:    xpthread_key_delete
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - arg1
      BBCount:         5
      ICount:          39
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_key_delete
        - vlog_abort
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:194,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:194,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:194,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:194,1'
          Dst:             pthread_key_delete
        - Src:             'lib/ovs-thread.c:194,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:194,1'
          Dst:             vlog_abort
    - functionName:    pthread_key_delete
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xpthread_join
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg1
        - arg2
      BBCount:         5
      ICount:          43
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_join
        - vlog_abort
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:190,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:190,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:190,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:190,1'
          Dst:             pthread_join
        - Src:             'lib/ovs-thread.c:190,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:190,1'
          Dst:             vlog_abort
    - functionName:    pthread_join
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xpthread_cond_broadcast
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg1
      BBCount:         5
      ICount:          39
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_cond_broadcast
        - vlog_abort
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:188,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:188,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:188,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:188,1'
          Dst:             pthread_cond_broadcast
        - Src:             'lib/ovs-thread.c:188,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:188,1'
          Dst:             vlog_abort
    - functionName:    pthread_cond_broadcast
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xpthread_cond_signal
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg1
      BBCount:         5
      ICount:          39
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_cond_signal
        - vlog_abort
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:187,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:187,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:187,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:187,1'
          Dst:             pthread_cond_signal
        - Src:             'lib/ovs-thread.c:187,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:187,1'
          Dst:             vlog_abort
    - functionName:    pthread_cond_signal
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xpthread_cond_destroy
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg1
      BBCount:         5
      ICount:          39
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_cond_destroy
        - vlog_abort
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:186,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:186,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:186,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:186,1'
          Dst:             pthread_cond_destroy
        - Src:             'lib/ovs-thread.c:186,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:186,1'
          Dst:             vlog_abort
    - functionName:    pthread_cond_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xpthread_cond_init
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg1
        - arg2
      BBCount:         5
      ICount:          43
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_cond_init
        - vlog_abort
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:185,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:185,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:185,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:185,1'
          Dst:             pthread_cond_init
        - Src:             'lib/ovs-thread.c:185,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:185,1'
          Dst:             vlog_abort
    - functionName:    pthread_cond_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xpthread_mutexattr_gettype
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg1
        - arg2
      BBCount:         5
      ICount:          43
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_mutexattr_gettype
        - vlog_abort
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:177,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:177,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:177,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:177,1'
          Dst:             pthread_mutexattr_gettype
        - Src:             'lib/ovs-thread.c:177,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:177,1'
          Dst:             vlog_abort
    - functionName:    pthread_mutexattr_gettype
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_spin_destroy
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - l_
      BBCount:         5
      ICount:          53
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_spin_destroy
        - vlog_abort
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:140,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:140,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:140,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:140,1'
          Dst:             pthread_spin_destroy
        - Src:             'lib/ovs-thread.c:140,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:140,1'
          Dst:             vlog_abort
    - functionName:    pthread_spin_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_spin_unlock
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - l_
      BBCount:         5
      ICount:          53
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_spin_unlock
        - vlog_abort
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:139,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:139,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:139,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:139,1'
          Dst:             pthread_spin_unlock
        - Src:             'lib/ovs-thread.c:139,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:139,1'
          Dst:             vlog_abort
    - functionName:    pthread_spin_unlock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_rwlock_destroy
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - l_
      BBCount:         5
      ICount:          53
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_rwlock_destroy
        - vlog_abort
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:137,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:137,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:137,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:137,1'
          Dst:             pthread_rwlock_destroy
        - Src:             'lib/ovs-thread.c:137,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:137,1'
          Dst:             vlog_abort
    - functionName:    pthread_rwlock_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_rwlock_unlock
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - l_
      BBCount:         5
      ICount:          53
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_rwlock_unlock
        - vlog_abort
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:136,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:136,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:136,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:136,1'
          Dst:             pthread_rwlock_unlock
        - Src:             'lib/ovs-thread.c:136,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:136,1'
          Dst:             vlog_abort
    - functionName:    pthread_rwlock_unlock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_spin_trylock_at
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - l_
        - where
      BBCount:         13
      ICount:          92
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_strerror
        - pthread_spin_trylock
        - vlog_abort
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:113,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:113,1'
              BranchSideFuncs:
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:113,1'
              BranchSideFuncs:
                - pthread_spin_trylock
                - ovs_strerror
                - vlog_abort
        - Branch String:   'lib/ovs-thread.c:113,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:113,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:113,1'
              BranchSideFuncs: []
        - Branch String:   'lib/ovs-thread.c:113,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:113,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:113,1'
              BranchSideFuncs: []
        - Branch String:   'lib/ovs-thread.c:113,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:113,1'
              BranchSideFuncs: []
            - BranchSide:      'lib/ovs-thread.c:113,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:113,1'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:113,1'
          Dst:             pthread_spin_trylock
        - Src:             'lib/ovs-thread.c:113,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:113,1'
          Dst:             vlog_abort
    - functionName:    pthread_spin_trylock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_rwlock_trywrlock_at
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - l_
        - where
      BBCount:         13
      ICount:          92
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_strerror
        - pthread_rwlock_trywrlock
        - vlog_abort
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:111,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:111,1'
              BranchSideFuncs:
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:111,1'
              BranchSideFuncs:
                - pthread_rwlock_trywrlock
                - ovs_strerror
                - vlog_abort
        - Branch String:   'lib/ovs-thread.c:111,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:111,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:111,1'
              BranchSideFuncs: []
        - Branch String:   'lib/ovs-thread.c:111,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:111,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:111,1'
              BranchSideFuncs: []
        - Branch String:   'lib/ovs-thread.c:111,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:111,1'
              BranchSideFuncs: []
            - BranchSide:      'lib/ovs-thread.c:111,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:111,1'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:111,1'
          Dst:             pthread_rwlock_trywrlock
        - Src:             'lib/ovs-thread.c:111,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:111,1'
          Dst:             vlog_abort
    - functionName:    pthread_rwlock_trywrlock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_rwlock_tryrdlock_at
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - l_
        - where
      BBCount:         13
      ICount:          92
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_strerror
        - pthread_rwlock_tryrdlock
        - vlog_abort
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:110,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:110,1'
              BranchSideFuncs:
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:110,1'
              BranchSideFuncs:
                - pthread_rwlock_tryrdlock
                - ovs_strerror
                - vlog_abort
        - Branch String:   'lib/ovs-thread.c:110,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:110,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:110,1'
              BranchSideFuncs: []
        - Branch String:   'lib/ovs-thread.c:110,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:110,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:110,1'
              BranchSideFuncs: []
        - Branch String:   'lib/ovs-thread.c:110,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:110,1'
              BranchSideFuncs: []
            - BranchSide:      'lib/ovs-thread.c:110,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:110,1'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:110,1'
          Dst:             pthread_rwlock_tryrdlock
        - Src:             'lib/ovs-thread.c:110,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:110,1'
          Dst:             vlog_abort
    - functionName:    pthread_rwlock_tryrdlock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_mutex_trylock_at
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - l_
        - where
      BBCount:         13
      ICount:          92
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_strerror
        - pthread_mutex_trylock
        - vlog_abort
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:109,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:109,1'
              BranchSideFuncs:
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:109,1'
              BranchSideFuncs:
                - pthread_mutex_trylock
                - ovs_strerror
                - vlog_abort
        - Branch String:   'lib/ovs-thread.c:109,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:109,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:109,1'
              BranchSideFuncs: []
        - Branch String:   'lib/ovs-thread.c:109,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:109,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:109,1'
              BranchSideFuncs: []
        - Branch String:   'lib/ovs-thread.c:109,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:109,1'
              BranchSideFuncs: []
            - BranchSide:      'lib/ovs-thread.c:109,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:109,1'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:109,1'
          Dst:             pthread_mutex_trylock
        - Src:             'lib/ovs-thread.c:109,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:109,1'
          Dst:             vlog_abort
    - functionName:    pthread_mutex_trylock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_spin_lock_at
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - l_
        - where
      BBCount:         7
      ICount:          70
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_spin_lock
        - vlog_abort
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:81,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:81,1'
              BranchSideFuncs:
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:81,1'
              BranchSideFuncs:
                - pthread_spin_lock
                - ovs_strerror
                - vlog_abort
        - Branch String:   'lib/ovs-thread.c:81,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:81,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:81,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:81,1'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:81,1'
          Dst:             pthread_spin_lock
        - Src:             'lib/ovs-thread.c:81,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:81,1'
          Dst:             vlog_abort
    - functionName:    pthread_spin_lock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_rwlock_wrlock_at
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - l_
        - where
      BBCount:         7
      ICount:          70
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_rwlock_wrlock
        - vlog_abort
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:79,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:79,1'
              BranchSideFuncs:
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:79,1'
              BranchSideFuncs:
                - pthread_rwlock_wrlock
                - ovs_strerror
                - vlog_abort
        - Branch String:   'lib/ovs-thread.c:79,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:79,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:79,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:79,1'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:79,1'
          Dst:             pthread_rwlock_wrlock
        - Src:             'lib/ovs-thread.c:79,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:79,1'
          Dst:             vlog_abort
    - functionName:    pthread_rwlock_wrlock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_rwlock_rdlock_at
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - l_
        - where
      BBCount:         7
      ICount:          70
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - pthread_rwlock_rdlock
        - vlog_abort
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.c:78,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:78,1'
              BranchSideFuncs:
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:78,1'
              BranchSideFuncs:
                - pthread_rwlock_rdlock
                - ovs_strerror
                - vlog_abort
        - Branch String:   'lib/ovs-thread.c:78,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.c:78,1'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_abort
            - BranchSide:      'lib/ovs-thread.c:78,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/ovs-thread.c:78,1'
          Dst:             vlog_abort
        - Src:             'lib/ovs-thread.c:78,1'
          Dst:             pthread_rwlock_rdlock
        - Src:             'lib/ovs-thread.c:78,1'
          Dst:             ovs_strerror
        - Src:             'lib/ovs-thread.c:78,1'
          Dst:             vlog_abort
    - functionName:    pthread_rwlock_rdlock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_this_module_poll_loop
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/poll-loop.c:36,1'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:36,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/poll-loop.c:36,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/poll-loop.c:36,1'
          Dst:             vlog_insert_module
    - functionName:    poll_create_node_init_coverage
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/poll-loop.c:38,1'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:38,1'
              BranchSideFuncs:
                - coverage_counter_register
            - BranchSide:      'lib/poll-loop.c:38,1'
              BranchSideFuncs:
                - coverage_counter_register
      Callsites:
        - Src:             'lib/poll-loop.c:38,1'
          Dst:             coverage_counter_register
    - functionName:    poll_zero_timeout_init_coverage
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/poll-loop.c:39,1'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:39,1'
              BranchSideFuncs:
                - coverage_counter_register
            - BranchSide:      'lib/poll-loop.c:39,1'
              BranchSideFuncs:
                - coverage_counter_register
      Callsites:
        - Src:             'lib/poll-loop.c:39,1'
          Dst:             coverage_counter_register
    - functionName:    poll_zero_timeout_count
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_poll_zero_timeout_get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/poll-loop.c:39,1'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:39,1'
              BranchSideFuncs:
                - counter_poll_zero_timeout_get
            - BranchSide:      'lib/poll-loop.c:39,1'
              BranchSideFuncs:
                - counter_poll_zero_timeout_get
      Callsites:
        - Src:             'lib/poll-loop.c:39,1'
          Dst:             counter_poll_zero_timeout_get
    - functionName:    counter_poll_zero_timeout_get
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_poll_zero_timeout_get_unsafe
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/poll-loop.c:39,1'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:39,1'
              BranchSideFuncs:
                - counter_poll_zero_timeout_get_unsafe
            - BranchSide:      'lib/poll-loop.c:39,1'
              BranchSideFuncs:
                - counter_poll_zero_timeout_get_unsafe
      Callsites:
        - Src:             'lib/poll-loop.c:39,1'
          Dst:             counter_poll_zero_timeout_get_unsafe
    - functionName:    counter_poll_zero_timeout_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    poll_create_node_count
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_poll_create_node_get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/poll-loop.c:38,1'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:38,1'
              BranchSideFuncs:
                - counter_poll_create_node_get
            - BranchSide:      'lib/poll-loop.c:38,1'
              BranchSideFuncs:
                - counter_poll_create_node_get
      Callsites:
        - Src:             'lib/poll-loop.c:38,1'
          Dst:             counter_poll_create_node_get
    - functionName:    counter_poll_create_node_get
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_poll_create_node_get_unsafe
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/poll-loop.c:38,1'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:38,1'
              BranchSideFuncs:
                - counter_poll_create_node_get_unsafe
            - BranchSide:      'lib/poll-loop.c:38,1'
              BranchSideFuncs:
                - counter_poll_create_node_get_unsafe
      Callsites:
        - Src:             'lib/poll-loop.c:38,1'
          Dst:             counter_poll_create_node_get_unsafe
    - functionName:    counter_poll_create_node_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    free_poll_loop
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 401
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - loop_
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - free_poll_nodes
        - hmap_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:398,5'
          Dst:             free_poll_nodes
        - Src:             'lib/poll-loop.c:399,5'
          Dst:             hmap_destroy
    - functionName:    free_poll_nodes
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 300
      functionLinenumberEnd: 313
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - loop
      BBCount:         10
      ICount:          67
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - hmap_first
        - hmap_next
        - hmap_remove
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/poll-loop.c:303,5'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:303,5'
              BranchSideFuncs:
                - hmap_next.836
                - hmap_remove
                - free
            - BranchSide:      'lib/poll-loop.c:303,5'
              BranchSideFuncs:
                - hmap_remove
                - free
                - hmap_next.836
        - Branch String:   'lib/poll-loop.c:303,5'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:304,22'
              BranchSideFuncs:
                - hmap_remove
                - free
                - hmap_next.836
            - BranchSide:      'lib/poll-loop.c:313,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/poll-loop.c:303,5'
          Dst:             hmap_first
        - Src:             'lib/poll-loop.c:303,5'
          Dst:             hmap_next
        - Src:             'lib/poll-loop.c:304,9'
          Dst:             hmap_remove
    - functionName:    hmap_first
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next__
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:417,12'
          Dst:             hmap_next__
    - functionName:    hmap_next
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_next__
      functionUses:    3
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:430,13'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:431,15'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:432,27'
              BranchSideFuncs:
                - hmap_next__.837
      Callsites:
        - Src:             './include/openvswitch/hmap.h:432,15'
          Dst:             hmap_next__
    - functionName:    hmap_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
      BBCount:         4
      ICount:          51
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:319,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:320,21'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:322,15'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    hmap_next__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - start
      BBCount:         8
      ICount:          55
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:403,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:404,34'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:409,5'
              BranchSideFuncs: []
        - Branch String:   './include/openvswitch/hmap.h:405,13'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:406,20'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:408,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - once
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/thread.h:161,12'
          Branch Sides:
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs:
                - ovsthread_once_start__
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    hash_rot
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - x
        - k
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mhash_add__
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_rot
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/hash.h:66,9'
          Branch Sides:
            - BranchSide:      'lib/hash.h:67,16'
              BranchSideFuncs:
                - hash_rot.839
            - BranchSide:      'lib/hash.h:70,10'
              BranchSideFuncs:
                - hash_rot.839
      Callsites:
        - Src:             'lib/hash.h:71,12'
          Dst:             hash_rot
    - functionName:    mhash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_rot
        - mhash_add__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:78,12'
          Dst:             mhash_add__
        - Src:             'lib/hash.h:79,12'
          Dst:             hash_rot
    - functionName:    mhash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - hash
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:109,12'
          Dst:             mhash_add
    - functionName:    hash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - final
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:119,12'
          Dst:             mhash_finish
    - functionName:    hmap_insert_fast
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - node
        - hash
      BBCount:         1
      ICount:          42
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_next_with_hash__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - node
        - hash
      BBCount:         7
      ICount:          42
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:349,25'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:349,28'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:349,5'
              BranchSideFuncs: []
        - Branch String:   './include/openvswitch/hmap.h:349,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:350,16'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:352,12'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    hmap_next_with_hash
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - node
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next_with_hash__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:396,12'
          Dst:             hmap_next_with_hash__
    - functionName:    hmap_first_with_hash
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - hash
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next_with_hash__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:360,12'
          Dst:             hmap_next_with_hash__
    - functionName:    hash_2words
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - x
        - y
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add
        - hash_finish
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:154,33'
          Dst:             hash_add
        - Src:             'lib/hash.h:154,24'
          Dst:             hash_add
        - Src:             'lib/hash.h:154,12'
          Dst:             hash_finish
    - functionName:    hmap_insert_at
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
        - hash
        - where
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_expand_at
        - hmap_insert_fast
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:308,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:308,9'
              BranchSideFuncs:
                - hmap_expand_at
            - BranchSide:      './include/openvswitch/hmap.h:309,24'
              BranchSideFuncs:
                - hmap_expand_at
      Callsites:
        - Src:             './include/openvswitch/hmap.h:307,5'
          Dst:             hmap_insert_fast
        - Src:             './include/openvswitch/hmap.h:309,9'
          Dst:             hmap_expand_at
    - functionName:    find_poll_node
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - loop
        - fd
        - wevent
      BBCount:         22
      ICount:          130
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - hash_2words
        - hmap_first_with_hash
        - hmap_next_with_hash
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/poll-loop.c:69,5'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:69,5'
              BranchSideFuncs:
                - hmap_next_with_hash
            - BranchSide:      'lib/poll-loop.c:69,5'
              BranchSideFuncs:
                - hmap_next_with_hash
        - Branch String:   'lib/poll-loop.c:69,5'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:72,14'
              BranchSideFuncs:
                - hmap_next_with_hash
            - BranchSide:      'lib/poll-loop.c:77,5'
              BranchSideFuncs: []
        - Branch String:   'lib/poll-loop.c:72,17'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:72,20'
              BranchSideFuncs:
                - hmap_next_with_hash
            - BranchSide:      'lib/poll-loop.c:73,17'
              BranchSideFuncs:
                - hmap_next_with_hash
        - Branch String:   'lib/poll-loop.c:73,13'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:73,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/poll-loop.c:74,20'
              BranchSideFuncs: []
        - Branch String:   'lib/poll-loop.c:73,24'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:73,27'
              BranchSideFuncs:
                - hmap_next_with_hash
            - BranchSide:      'lib/poll-loop.c:76,5'
              BranchSideFuncs:
                - hmap_next_with_hash
        - Branch String:   'lib/poll-loop.c:72,13'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:74,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/poll-loop.c:76,5'
              BranchSideFuncs:
                - hmap_next_with_hash
      Callsites:
        - Src:             'lib/poll-loop.c:69,5'
          Dst:             hash_2words
        - Src:             'lib/poll-loop.c:69,5'
          Dst:             hmap_first_with_hash
        - Src:             'lib/poll-loop.c:69,5'
          Dst:             hmap_next_with_hash
    - functionName:    poll_create_node_add
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - n
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_poll_create_node_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:38,1'
          Dst:             counter_poll_create_node_get
    - functionName:    log_wakeup
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - where
        - pollfd
        - timeout
      BBCount:         44
      ICount:          227
      EdgeCount:       57
      CyclomaticComplexity: 15
      functionsReached:
        - describe_fd
        - ds_cstr
        - ds_destroy
        - ds_init
        - ds_put_cstr
        - ds_put_format
        - get_cpu_usage
        - thread_is_pmd
        - vlog
        - vlog_is_enabled
        - vlog_should_drop
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/poll-loop.c:254,9'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:255,15'
              BranchSideFuncs:
                - ds_init
                - ds_put_cstr
                - ds_put_format
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_format
                - ds_put_format
                - describe_fd
                - ds_put_format
                - free
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
            - BranchSide:      'lib/poll-loop.c:256,16'
              BranchSideFuncs:
                - thread_is_pmd
                - vlog_should_drop
                - ds_init
                - ds_put_cstr
                - ds_put_format
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_format
                - ds_put_format
                - describe_fd
                - ds_put_format
                - free
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
        - Branch String:   'lib/poll-loop.c:257,16'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:257,20'
              BranchSideFuncs:
                - thread_is_pmd
                - vlog_should_drop
                - ds_init
                - ds_put_cstr
                - ds_put_format
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_format
                - ds_put_format
                - describe_fd
                - ds_put_format
                - free
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
            - BranchSide:      'lib/poll-loop.c:261,9'
              BranchSideFuncs: []
        - Branch String:   'lib/poll-loop.c:258,16'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:258,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/poll-loop.c:261,9'
              BranchSideFuncs: []
        - Branch String:   'lib/poll-loop.c:256,16'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:259,15'
              BranchSideFuncs: []
            - BranchSide:      'lib/poll-loop.c:261,9'
              BranchSideFuncs: []
        - Branch String:   'lib/poll-loop.c:266,9'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:267,41'
              BranchSideFuncs:
                - describe_fd
                - ds_put_format
                - free
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_format
                - ds_put_format
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
            - BranchSide:      'lib/poll-loop.c:286,44'
              BranchSideFuncs:
                - ds_put_format
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_format
                - ds_put_format
        - Branch String:   'lib/poll-loop.c:268,13'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:269,13'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_format
                - free
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_format
                - ds_put_format
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
            - BranchSide:      'lib/poll-loop.c:271,13'
              BranchSideFuncs:
                - ds_put_format
                - free
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_format
                - ds_put_format
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
        - Branch String:   'lib/poll-loop.c:271,13'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:272,13'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_format
                - free
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_format
                - ds_put_format
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
            - BranchSide:      'lib/poll-loop.c:274,13'
              BranchSideFuncs:
                - ds_put_format
                - free
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_format
                - ds_put_format
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
        - Branch String:   'lib/poll-loop.c:274,13'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:275,13'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_format
                - free
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_format
                - ds_put_format
                - ds_put_cstr
                - ds_put_cstr
            - BranchSide:      'lib/poll-loop.c:277,13'
              BranchSideFuncs:
                - ds_put_format
                - free
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_format
                - ds_put_format
                - ds_put_cstr
                - ds_put_cstr
        - Branch String:   'lib/poll-loop.c:277,13'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:278,13'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_format
                - free
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_format
                - ds_put_format
                - ds_put_cstr
            - BranchSide:      'lib/poll-loop.c:280,13'
              BranchSideFuncs:
                - ds_put_format
                - free
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_format
                - ds_put_format
                - ds_put_cstr
        - Branch String:   'lib/poll-loop.c:280,13'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:281,13'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_format
                - free
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_format
                - ds_put_format
            - BranchSide:      'lib/poll-loop.c:283,45'
              BranchSideFuncs:
                - ds_put_format
                - free
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_format
                - ds_put_format
        - Branch String:   'lib/poll-loop.c:288,9'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:289,37'
              BranchSideFuncs:
                - ds_put_format
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_format
            - BranchSide:      'lib/poll-loop.c:291,9'
              BranchSideFuncs:
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_format
        - Branch String:   'lib/poll-loop.c:291,9'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:292,48'
              BranchSideFuncs:
                - ds_put_format
                - ds_destroy
                - ds_cstr
                - vlog
            - BranchSide:      'lib/poll-loop.c:294,5'
              BranchSideFuncs:
                - ds_destroy
                - ds_cstr
                - vlog
        - Branch String:   'lib/poll-loop.c:294,5'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:294,5'
              BranchSideFuncs:
                - ds_cstr
                - vlog
                - ds_destroy
            - BranchSide:      'lib/poll-loop.c:295,5'
              BranchSideFuncs:
                - ds_destroy
      Callsites:
        - Src:             'lib/poll-loop.c:253,17'
          Dst:             get_cpu_usage
        - Src:             'lib/poll-loop.c:254,9'
          Dst:             vlog_is_enabled
        - Src:             'lib/poll-loop.c:257,20'
          Dst:             thread_is_pmd
        - Src:             'lib/poll-loop.c:258,20'
          Dst:             vlog_should_drop
        - Src:             'lib/poll-loop.c:264,5'
          Dst:             ds_init
        - Src:             'lib/poll-loop.c:265,5'
          Dst:             ds_put_cstr
        - Src:             'lib/poll-loop.c:267,29'
          Dst:             describe_fd
        - Src:             'lib/poll-loop.c:269,13'
          Dst:             ds_put_cstr
        - Src:             'lib/poll-loop.c:272,13'
          Dst:             ds_put_cstr
        - Src:             'lib/poll-loop.c:275,13'
          Dst:             ds_put_cstr
        - Src:             'lib/poll-loop.c:278,13'
          Dst:             ds_put_cstr
        - Src:             'lib/poll-loop.c:281,13'
          Dst:             ds_put_cstr
        - Src:             'lib/poll-loop.c:283,9'
          Dst:             ds_put_format
        - Src:             'lib/poll-loop.c:286,9'
          Dst:             ds_put_format
        - Src:             'lib/poll-loop.c:289,9'
          Dst:             ds_put_format
        - Src:             'lib/poll-loop.c:292,9'
          Dst:             ds_put_format
        - Src:             'lib/poll-loop.c:294,5'
          Dst:             ds_cstr
        - Src:             'lib/poll-loop.c:294,5'
          Dst:             vlog
        - Src:             'lib/poll-loop.c:295,5'
          Dst:             ds_destroy
    - functionName:    hmap_count
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    poll_zero_timeout_add
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - n
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_poll_zero_timeout_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:39,1'
          Dst:             counter_poll_zero_timeout_get
    - functionName:    poll_block
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 391
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         40
      ICount:          256
      EdgeCount:       51
      CyclomaticComplexity: 13
      functionsReached:
        - fatal_signal_run
        - fatal_signal_wait
        - free_poll_nodes
        - get_cpu_usage
        - hmap_count
        - hmap_first
        - hmap_next
        - log_wakeup
        - ovs_strerror
        - poll_loop
        - poll_zero_timeout_add
        - seq_woke
        - time_poll
        - timewarp_run
        - vlog_is_enabled
        - vlog_rate_limit
        - xmalloc
      functionUses:    8
      BranchProfiles:
        - Branch String:   'lib/poll-loop.c:321,30'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:321,23'
              BranchSideFuncs:
                - poll_loop
                - fatal_signal_wait
                - timewarp_run
                - hmap_count
                - xmalloc
                - hmap_first.835
                - hmap_count
                - time_poll
                - log_wakeup
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
                - get_cpu_usage
                - vlog_is_enabled
                - hmap_first.835
                - hmap_next.836
                - log_wakeup
                - ovs_strerror
                - vlog_rate_limit
                - hmap_next.836
                - poll_zero_timeout_add
            - BranchSide:      'lib/poll-loop.c:321,30'
              BranchSideFuncs:
                - poll_loop
                - fatal_signal_wait
                - timewarp_run
                - hmap_count
                - xmalloc
                - hmap_first.835
                - hmap_count
                - time_poll
                - log_wakeup
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
                - get_cpu_usage
                - vlog_is_enabled
                - hmap_first.835
                - hmap_next.836
                - log_wakeup
                - ovs_strerror
                - vlog_rate_limit
                - hmap_next.836
                - poll_zero_timeout_add
        - Branch String:   'lib/poll-loop.c:333,9'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:334,9'
              BranchSideFuncs:
                - poll_zero_timeout_add
                - timewarp_run
                - hmap_count
                - xmalloc
                - hmap_first.835
                - hmap_count
                - time_poll
                - log_wakeup
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
                - get_cpu_usage
                - vlog_is_enabled
                - hmap_first.835
                - hmap_next.836
                - log_wakeup
                - ovs_strerror
                - vlog_rate_limit
                - hmap_next.836
            - BranchSide:      'lib/poll-loop.c:337,5'
              BranchSideFuncs:
                - timewarp_run
                - hmap_count
                - xmalloc
                - hmap_first.835
                - hmap_count
                - time_poll
                - log_wakeup
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
                - get_cpu_usage
                - vlog_is_enabled
                - hmap_first.835
                - hmap_next.836
                - log_wakeup
                - ovs_strerror
                - vlog_rate_limit
                - hmap_next.836
        - Branch String:   'lib/poll-loop.c:346,5'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:346,5'
              BranchSideFuncs:
                - hmap_count
                - time_poll
                - log_wakeup
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
                - get_cpu_usage
                - vlog_is_enabled
                - hmap_first.835
                - hmap_next.836
                - log_wakeup
                - ovs_strerror
                - vlog_rate_limit
                - hmap_next.836
            - BranchSide:      'lib/poll-loop.c:346,5'
              BranchSideFuncs:
                - hmap_count
                - time_poll
                - log_wakeup
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
                - get_cpu_usage
                - vlog_is_enabled
                - hmap_first.835
                - hmap_next.836
                - log_wakeup
                - ovs_strerror
                - vlog_rate_limit
                - hmap_next.836
        - Branch String:   'lib/poll-loop.c:346,5'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:347,9'
              BranchSideFuncs:
                - hmap_next.836
                - hmap_count
                - time_poll
                - log_wakeup
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
                - get_cpu_usage
                - vlog_is_enabled
                - hmap_first.835
                - hmap_next.836
                - log_wakeup
                - ovs_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/poll-loop.c:364,24'
              BranchSideFuncs:
                - hmap_count
                - time_poll
                - log_wakeup
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
                - get_cpu_usage
                - vlog_is_enabled
                - hmap_first.835
                - hmap_next.836
                - log_wakeup
                - ovs_strerror
                - vlog_rate_limit
        - Branch String:   'lib/poll-loop.c:366,9'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:368,9'
              BranchSideFuncs:
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
                - ovs_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/poll-loop.c:369,17'
              BranchSideFuncs:
                - log_wakeup
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
                - get_cpu_usage
                - vlog_is_enabled
                - hmap_first.835
                - hmap_next.836
                - log_wakeup
        - Branch String:   'lib/poll-loop.c:368,9'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:368,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_rate_limit
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
            - BranchSide:      'lib/poll-loop.c:369,5'
              BranchSideFuncs:
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
        - Branch String:   'lib/poll-loop.c:369,16'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:370,20'
              BranchSideFuncs:
                - get_cpu_usage
                - vlog_is_enabled
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
                - hmap_first.835
                - hmap_next.836
                - log_wakeup
            - BranchSide:      'lib/poll-loop.c:371,16'
              BranchSideFuncs:
                - get_cpu_usage
                - vlog_is_enabled
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
                - hmap_first.835
                - hmap_next.836
                - log_wakeup
        - Branch String:   'lib/poll-loop.c:371,37'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:371,40'
              BranchSideFuncs:
                - hmap_first.835
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
                - hmap_next.836
                - log_wakeup
            - BranchSide:      'lib/poll-loop.c:372,11'
              BranchSideFuncs:
                - hmap_first.835
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
                - hmap_next.836
                - log_wakeup
        - Branch String:   'lib/poll-loop.c:373,9'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:373,9'
              BranchSideFuncs:
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
                - hmap_next.836
                - log_wakeup
            - BranchSide:      'lib/poll-loop.c:373,9'
              BranchSideFuncs:
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
                - hmap_next.836
                - log_wakeup
        - Branch String:   'lib/poll-loop.c:373,9'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:374,17'
              BranchSideFuncs:
                - hmap_next.836
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
                - log_wakeup
            - BranchSide:      'lib/poll-loop.c:379,5'
              BranchSideFuncs:
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
        - Branch String:   'lib/poll-loop.c:374,17'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:375,28'
              BranchSideFuncs:
                - log_wakeup
                - hmap_next.836
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
            - BranchSide:      'lib/poll-loop.c:377,14'
              BranchSideFuncs:
                - hmap_next.836
                - free_poll_nodes
                - free
                - free
                - fatal_signal_run
                - seq_woke
                - log_wakeup
      Callsites:
        - Src:             'lib/poll-loop.c:321,30'
          Dst:             poll_loop
        - Src:             'lib/poll-loop.c:331,5'
          Dst:             fatal_signal_wait
        - Src:             'lib/poll-loop.c:334,9'
          Dst:             poll_zero_timeout_add
        - Src:             'lib/poll-loop.c:337,5'
          Dst:             timewarp_run
        - Src:             'lib/poll-loop.c:338,23'
          Dst:             hmap_count
        - Src:             'lib/poll-loop.c:338,15'
          Dst:             xmalloc
        - Src:             'lib/poll-loop.c:346,5'
          Dst:             hmap_first
        - Src:             'lib/poll-loop.c:346,5'
          Dst:             hmap_next
        - Src:             'lib/poll-loop.c:364,33'
          Dst:             hmap_count
        - Src:             'lib/poll-loop.c:364,14'
          Dst:             time_poll
        - Src:             'lib/poll-loop.c:368,9'
          Dst:             ovs_strerror
        - Src:             'lib/poll-loop.c:368,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/poll-loop.c:370,9'
          Dst:             log_wakeup
        - Src:             'lib/poll-loop.c:371,16'
          Dst:             get_cpu_usage
        - Src:             'lib/poll-loop.c:371,40'
          Dst:             vlog_is_enabled
        - Src:             'lib/poll-loop.c:373,9'
          Dst:             hmap_first
        - Src:             'lib/poll-loop.c:375,17'
          Dst:             log_wakeup
        - Src:             'lib/poll-loop.c:373,9'
          Dst:             hmap_next
        - Src:             'lib/poll-loop.c:381,5'
          Dst:             free_poll_nodes
        - Src:             'lib/poll-loop.c:388,5'
          Dst:             fatal_signal_run
        - Src:             'lib/poll-loop.c:390,5'
          Dst:             seq_woke
    - functionName:    poll_loop
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 422
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - free_poll_loop
        - hmap_init
        - ovsthread_once_done
        - ovsthread_once_start
        - pthread_getspecific
        - xpthread_key_create
        - xpthread_setspecific
        - xzalloc
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/poll-loop.c:410,9'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:408,23'
              BranchSideFuncs:
                - ovsthread_once_start.838
                - pthread_getspecific
                - xzalloc
                - hmap_init
                - xpthread_setspecific
                - xpthread_key_create
                - ovsthread_once_done
            - BranchSide:      'lib/poll-loop.c:410,9'
              BranchSideFuncs:
                - ovsthread_once_start.838
                - pthread_getspecific
                - xzalloc
                - hmap_init
                - xpthread_setspecific
                - xpthread_key_create
                - ovsthread_once_done
        - Branch String:   'lib/poll-loop.c:410,9'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:411,9'
              BranchSideFuncs:
                - xpthread_key_create
                - ovsthread_once_done
                - pthread_getspecific
                - xzalloc
                - hmap_init
                - xpthread_setspecific
            - BranchSide:      'lib/poll-loop.c:415,32'
              BranchSideFuncs:
                - pthread_getspecific
                - xzalloc
                - hmap_init
                - xpthread_setspecific
        - Branch String:   'lib/poll-loop.c:416,9'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:416,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/poll-loop.c:417,16'
              BranchSideFuncs:
                - xzalloc
                - hmap_init
                - xpthread_setspecific
      Callsites:
        - Src:             'lib/poll-loop.c:410,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/poll-loop.c:411,9'
          Dst:             xpthread_key_create
        - Src:             'lib/poll-loop.c:411,9'
          Dst:             free_poll_loop
        - Src:             'lib/poll-loop.c:412,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/poll-loop.c:415,12'
          Dst:             pthread_getspecific
        - Src:             'lib/poll-loop.c:417,16'
          Dst:             xzalloc
        - Src:             'lib/poll-loop.c:419,9'
          Dst:             hmap_init
        - Src:             'lib/poll-loop.c:420,9'
          Dst:             xpthread_setspecific
    - functionName:    poll_immediate_wake_at
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - where
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - poll_timer_wait_at
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:232,5'
          Dst:             poll_timer_wait_at
    - functionName:    poll_timer_wait_at
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - msec
        - where
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - poll_timer_wait_until_at
        - time_msec
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/poll-loop.c:187,9'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:189,14'
              BranchSideFuncs:
                - poll_timer_wait_until_at
            - BranchSide:      'lib/poll-loop.c:190,41'
              BranchSideFuncs:
                - poll_timer_wait_until_at
        - Branch String:   'lib/poll-loop.c:190,16'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:192,16'
              BranchSideFuncs:
                - poll_timer_wait_until_at
            - BranchSide:      'lib/poll-loop.c:195,14'
              BranchSideFuncs:
                - poll_timer_wait_until_at
      Callsites:
        - Src:             'lib/poll-loop.c:184,25'
          Dst:             time_msec
        - Src:             'lib/poll-loop.c:198,5'
          Dst:             poll_timer_wait_until_at
    - functionName:    poll_timer_wait_until_at
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - when
        - where
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - poll_loop
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/poll-loop.c:217,9'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:217,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/poll-loop.c:218,30'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/poll-loop.c:216,30'
          Dst:             poll_loop
    - functionName:    poll_create_node
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - int
        - int
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - fd
        - wevent
        - events
        - where
      BBCount:         6
      ICount:          98
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - find_poll_node
        - hash_2words
        - hmap_insert_at
        - poll_create_node_add
        - poll_loop
        - xzalloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/poll-loop.c:115,9'
          Branch Sides:
            - BranchSide:      'lib/poll-loop.c:116,32'
              BranchSideFuncs: []
            - BranchSide:      'lib/poll-loop.c:118,16'
              BranchSideFuncs:
                - xzalloc
                - hash_2words.845
                - hmap_insert_at
      Callsites:
        - Src:             'lib/poll-loop.c:105,30'
          Dst:             poll_loop
        - Src:             'lib/poll-loop.c:108,5'
          Dst:             poll_create_node_add
        - Src:             'lib/poll-loop.c:114,12'
          Dst:             find_poll_node
        - Src:             'lib/poll-loop.c:118,16'
          Dst:             xzalloc
        - Src:             'lib/poll-loop.c:119,9'
          Dst:             hash_2words
        - Src:             'lib/poll-loop.c:119,9'
          Dst:             hmap_insert_at
    - functionName:    poll_fd_wait_at
      functionSourceFile: '/src/openvswitch/lib/poll-loop.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - fd
        - events
        - where
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - poll_create_node
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/poll-loop.c:149,5'
          Dst:             poll_create_node
    - functionName:    init_this_module_reconnect
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:26,1'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:26,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/reconnect.c:26,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/reconnect.c:26,1'
          Dst:             vlog_insert_module
    - functionName:    reconnect_state_name__
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - state
      BBCount:         10
      ICount:          53
      EdgeCount:       18
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:85,5'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:87,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:87,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:87,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:87,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:87,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:87,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:87,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:90,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    reconnect_get_stats
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 731
      functionLinenumberEnd: 750
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - fsm
        - now
        - stats
      BBCount:         6
      ICount:          126
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - is_connected_state
        - reconnect_get_last_connect_elapsed
        - reconnect_get_last_disconnect_elapsed
        - reconnect_is_connected
        - reconnect_state_name__
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:744,12'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:744,12'
              BranchSideFuncs:
                - reconnect_get_last_connect_elapsed
                - reconnect_state_name__
            - BranchSide:      'lib/reconnect.c:745,49'
              BranchSideFuncs:
                - reconnect_get_last_connect_elapsed
                - reconnect_state_name__
      Callsites:
        - Src:             'lib/reconnect.c:738,27'
          Dst:             reconnect_is_connected
        - Src:             'lib/reconnect.c:740,11'
          Dst:             reconnect_get_last_connect_elapsed
        - Src:             'lib/reconnect.c:742,11'
          Dst:             reconnect_get_last_disconnect_elapsed
        - Src:             'lib/reconnect.c:744,12'
          Dst:             is_connected_state
        - Src:             'lib/reconnect.c:745,14'
          Dst:             reconnect_get_last_connect_elapsed
        - Src:             'lib/reconnect.c:748,20'
          Dst:             reconnect_state_name__
    - functionName:    reconnect_is_connected
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 701
      functionLinenumberEnd: 702
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - fsm
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - is_connected_state
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:702,12'
          Dst:             is_connected_state
    - functionName:    reconnect_get_last_connect_elapsed
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 711
      functionLinenumberEnd: 713
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - fsm
        - now
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:712,12'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:712,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:713,11'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    reconnect_get_last_disconnect_elapsed
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 722
      functionLinenumberEnd: 724
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - fsm
        - now
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:723,12'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:723,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:724,11'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    is_connected_state
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - state
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_timeout
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 686
      functionLinenumberEnd: 693
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - fsm
        - now
      BBCount:         15
      ICount:          80
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - reconnect_deadline__
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:688,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:689,35'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:692,5'
              BranchSideFuncs: []
        - Branch String:   'lib/reconnect.c:690,16'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:690,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:690,16'
              BranchSideFuncs: []
        - Branch String:   'lib/reconnect.c:690,16'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:690,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:690,16'
              BranchSideFuncs: []
        - Branch String:   'lib/reconnect.c:690,16'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:690,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:690,16'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/reconnect.c:687,30'
          Dst:             reconnect_deadline__
    - functionName:    reconnect_deadline__
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 544
      functionLinenumberEnd: 593
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - fsm
        - now
      BBCount:         33
      ICount:          221
      EdgeCount:       39
      CyclomaticComplexity: 8
      functionsReached:
        - abort
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:546,5'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:549,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:549,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:552,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:555,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:558,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:578,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:589,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:592,5'
              BranchSideFuncs:
                - abort
        - Branch String:   'lib/reconnect.c:555,37'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:555,37'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:555,37'
              BranchSideFuncs: []
        - Branch String:   'lib/reconnect.c:558,13'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:559,34'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:575,9'
              BranchSideFuncs: []
        - Branch String:   'lib/reconnect.c:559,34'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:559,27'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:559,27'
              BranchSideFuncs: []
        - Branch String:   'lib/reconnect.c:561,34'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:561,37'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:566,24'
              BranchSideFuncs: []
        - Branch String:   'lib/reconnect.c:561,17'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:566,24'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:572,24'
              BranchSideFuncs: []
        - Branch String:   'lib/reconnect.c:578,13'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:579,40'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:586,9'
              BranchSideFuncs: []
        - Branch String:   'lib/reconnect.c:580,34'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:580,37'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:581,24'
              BranchSideFuncs: []
        - Branch String:   'lib/reconnect.c:580,17'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:581,24'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:583,24'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/reconnect.c:592,5'
          Dst:             abort
    - functionName:    reconnect_wait
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 674
      functionLinenumberEnd: 679
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - fsm
        - now
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - poll_timer_wait_at
        - reconnect_timeout
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:676,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:676,9'
              BranchSideFuncs:
                - poll_timer_wait_at
            - BranchSide:      'lib/reconnect.c:677,9'
              BranchSideFuncs:
                - poll_timer_wait_at
      Callsites:
        - Src:             'lib/reconnect.c:675,19'
          Dst:             reconnect_timeout
        - Src:             'lib/reconnect.c:677,9'
          Dst:             poll_timer_wait_at
    - functionName:    reconnect_run
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 633
      functionLinenumberEnd: 668
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - fsm
        - now
      BBCount:         27
      ICount:          156
      EdgeCount:       29
      CyclomaticComplexity: 4
      functionsReached:
        - abort
        - reconnect_deadline__
        - reconnect_transition__
        - vlog
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:634,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:635,17'
              BranchSideFuncs:
                - vlog
                - reconnect_transition__
                - vlog
                - abort
            - BranchSide:      'lib/reconnect.c:666,9'
              BranchSideFuncs: []
        - Branch String:   'lib/reconnect.c:635,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:637,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:640,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:643,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:646,13'
              BranchSideFuncs:
                - reconnect_transition__
                - vlog
            - BranchSide:      'lib/reconnect.c:652,13'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/reconnect.c:658,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:661,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:664,9'
              BranchSideFuncs:
                - abort
        - Branch String:   'lib/reconnect.c:646,13'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:646,13'
              BranchSideFuncs:
                - vlog
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:648,36'
              BranchSideFuncs:
                - reconnect_transition__
        - Branch String:   'lib/reconnect.c:646,13'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:646,13'
              BranchSideFuncs:
                - vlog
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:646,13'
              BranchSideFuncs:
                - vlog
                - reconnect_transition__
        - Branch String:   'lib/reconnect.c:652,13'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:652,13'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/reconnect.c:655,13'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/reconnect.c:634,16'
          Dst:             reconnect_deadline__
        - Src:             'lib/reconnect.c:646,13'
          Dst:             vlog
        - Src:             'lib/reconnect.c:648,13'
          Dst:             reconnect_transition__
        - Src:             'lib/reconnect.c:652,13'
          Dst:             vlog
        - Src:             'lib/reconnect.c:664,9'
          Dst:             abort
    - functionName:    reconnect_transition__
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 523
      functionLinenumberEnd: 540
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - fsm
        - now
        - state
      BBCount:         20
      ICount:          135
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - is_connected_state
        - reconnect_state_name__
        - vlog
      functionUses:    11
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:524,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:525,9'
              BranchSideFuncs:
                - is_connected_state
                - is_connected_state
                - reconnect_state_name__
                - vlog
                - is_connected_state
            - BranchSide:      'lib/reconnect.c:530,28'
              BranchSideFuncs:
                - is_connected_state
                - is_connected_state
                - reconnect_state_name__
                - vlog
                - is_connected_state
        - Branch String:   'lib/reconnect.c:526,13'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:527,13'
              BranchSideFuncs:
                - is_connected_state
                - is_connected_state
                - reconnect_state_name__
                - vlog
                - is_connected_state
            - BranchSide:      'lib/reconnect.c:529,5'
              BranchSideFuncs:
                - is_connected_state
                - is_connected_state
                - reconnect_state_name__
                - vlog
                - is_connected_state
        - Branch String:   'lib/reconnect.c:530,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:531,32'
              BranchSideFuncs:
                - is_connected_state
                - reconnect_state_name__
                - vlog
            - BranchSide:      'lib/reconnect.c:537,5'
              BranchSideFuncs:
                - reconnect_state_name__
                - vlog
        - Branch String:   'lib/reconnect.c:531,13'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:532,46'
              BranchSideFuncs:
                - reconnect_state_name__
                - vlog
            - BranchSide:      'lib/reconnect.c:534,9'
              BranchSideFuncs:
                - reconnect_state_name__
                - vlog
        - Branch String:   'lib/reconnect.c:537,5'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:537,5'
              BranchSideFuncs:
                - reconnect_state_name__
                - vlog
            - BranchSide:      'lib/reconnect.c:537,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/reconnect.c:530,9'
          Dst:             is_connected_state
        - Src:             'lib/reconnect.c:530,43'
          Dst:             is_connected_state
        - Src:             'lib/reconnect.c:531,13'
          Dst:             is_connected_state
        - Src:             'lib/reconnect.c:537,5'
          Dst:             reconnect_state_name__
        - Src:             'lib/reconnect.c:537,5'
          Dst:             vlog
    - functionName:    reconnect_receive_attempted
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 518
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - fsm
        - now
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_activity
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 500
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - fsm
        - now
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - reconnect_transition__
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:501,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:501,9'
              BranchSideFuncs:
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:502,32'
              BranchSideFuncs:
                - reconnect_transition__
      Callsites:
        - Src:             'lib/reconnect.c:502,9'
          Dst:             reconnect_transition__
    - functionName:    reconnect_connect_failed
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 491
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - fsm
        - now
        - error
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - reconnect_connecting
        - reconnect_disconnected
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:492,5'
          Dst:             reconnect_connecting
        - Src:             'lib/reconnect.c:493,5'
          Dst:             reconnect_disconnected
    - functionName:    reconnect_connecting
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 421
      functionLinenumberEnd: 430
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - fsm
        - now
      BBCount:         22
      ICount:          110
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - reconnect_transition__
        - vlog
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:422,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:422,9'
              BranchSideFuncs:
                - reconnect_transition__
                - vlog
                - vlog
            - BranchSide:      'lib/reconnect.c:423,13'
              BranchSideFuncs:
                - reconnect_transition__
                - vlog
                - vlog
        - Branch String:   'lib/reconnect.c:423,13'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:424,13'
              BranchSideFuncs:
                - reconnect_transition__
                - vlog
            - BranchSide:      'lib/reconnect.c:425,20'
              BranchSideFuncs:
                - reconnect_transition__
                - vlog
        - Branch String:   'lib/reconnect.c:424,13'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:424,13'
              BranchSideFuncs:
                - vlog
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:425,9'
              BranchSideFuncs:
                - reconnect_transition__
        - Branch String:   'lib/reconnect.c:426,13'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:426,13'
              BranchSideFuncs:
                - vlog
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:427,9'
              BranchSideFuncs:
                - reconnect_transition__
      Callsites:
        - Src:             'lib/reconnect.c:424,13'
          Dst:             vlog
        - Src:             'lib/reconnect.c:426,13'
          Dst:             vlog
        - Src:             'lib/reconnect.c:428,9'
          Dst:             reconnect_transition__
    - functionName:    reconnect_disconnected
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 412
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - fsm
        - now
        - error
      BBCount:         101
      ICount:          542
      EdgeCount:       128
      CyclomaticComplexity: 29
      functionsReached:
        - ovs_strerror
        - reconnect_may_retry
        - reconnect_transition__
        - vlog
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:343,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:343,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:345,13'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
                - vlog
                - ovs_strerror
                - vlog
                - vlog
                - ovs_strerror
                - vlog
                - vlog
                - vlog
                - ovs_strerror
                - vlog
        - Branch String:   'lib/reconnect.c:345,13'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:346,17'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
                - vlog
                - vlog
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/reconnect.c:354,20'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
                - vlog
                - ovs_strerror
                - vlog
                - vlog
                - ovs_strerror
                - vlog
        - Branch String:   'lib/reconnect.c:346,17'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:347,17'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/reconnect.c:349,24'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
                - vlog
                - vlog
        - Branch String:   'lib/reconnect.c:347,17'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:347,17'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
            - BranchSide:      'lib/reconnect.c:349,13'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
        - Branch String:   'lib/reconnect.c:349,24'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:350,17'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
                - vlog
            - BranchSide:      'lib/reconnect.c:352,17'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
                - vlog
        - Branch String:   'lib/reconnect.c:350,17'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:350,17'
              BranchSideFuncs:
                - vlog
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
            - BranchSide:      'lib/reconnect.c:351,13'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
        - Branch String:   'lib/reconnect.c:352,17'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:0,0'
              BranchSideFuncs:
                - vlog
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
            - BranchSide:      'lib/reconnect.c:352,17'
              BranchSideFuncs:
                - vlog
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
        - Branch String:   'lib/reconnect.c:354,20'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:355,17'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
                - vlog
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/reconnect.c:362,20'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
                - vlog
                - ovs_strerror
                - vlog
        - Branch String:   'lib/reconnect.c:355,17'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:356,17'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/reconnect.c:359,17'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
                - vlog
        - Branch String:   'lib/reconnect.c:356,17'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:356,17'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
            - BranchSide:      'lib/reconnect.c:358,13'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
        - Branch String:   'lib/reconnect.c:359,17'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:0,0'
              BranchSideFuncs:
                - vlog
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
            - BranchSide:      'lib/reconnect.c:359,17'
              BranchSideFuncs:
                - vlog
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
        - Branch String:   'lib/reconnect.c:362,20'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:0,0'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
                - vlog
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/reconnect.c:363,32'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
                - vlog
                - ovs_strerror
                - vlog
        - Branch String:   'lib/reconnect.c:364,17'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:365,17'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/reconnect.c:368,17'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
                - vlog
        - Branch String:   'lib/reconnect.c:365,17'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:365,17'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
            - BranchSide:      'lib/reconnect.c:367,13'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
        - Branch String:   'lib/reconnect.c:368,17'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:0,0'
              BranchSideFuncs:
                - vlog
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
            - BranchSide:      'lib/reconnect.c:368,17'
              BranchSideFuncs:
                - vlog
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
        - Branch String:   'lib/reconnect.c:376,13'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:377,38'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
            - BranchSide:      'lib/reconnect.c:380,34'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
                - reconnect_transition__
                - vlog
                - vlog
        - Branch String:   'lib/reconnect.c:380,13'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:381,36'
              BranchSideFuncs:
                - reconnect_transition__
                - vlog
                - vlog
            - BranchSide:      'lib/reconnect.c:386,13'
              BranchSideFuncs:
                - reconnect_transition__
                - vlog
                - vlog
        - Branch String:   'lib/reconnect.c:386,13'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:387,13'
              BranchSideFuncs:
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:389,20'
              BranchSideFuncs:
                - reconnect_transition__
                - vlog
                - vlog
        - Branch String:   'lib/reconnect.c:390,20'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:390,24'
              BranchSideFuncs:
                - reconnect_transition__
                - vlog
                - vlog
            - BranchSide:      'lib/reconnect.c:394,17'
              BranchSideFuncs:
                - reconnect_transition__
                - vlog
                - vlog
        - Branch String:   'lib/reconnect.c:391,24'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:391,27'
              BranchSideFuncs:
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:392,28'
              BranchSideFuncs:
                - reconnect_transition__
        - Branch String:   'lib/reconnect.c:389,20'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:392,28'
              BranchSideFuncs:
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:394,17'
              BranchSideFuncs:
                - reconnect_transition__
                - vlog
                - vlog
        - Branch String:   'lib/reconnect.c:392,28'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:392,13'
              BranchSideFuncs:
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:392,47'
              BranchSideFuncs:
                - reconnect_transition__
        - Branch String:   'lib/reconnect.c:394,17'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:395,32'
              BranchSideFuncs:
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:396,24'
              BranchSideFuncs:
                - reconnect_transition__
                - vlog
                - vlog
        - Branch String:   'lib/reconnect.c:396,24'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:397,17'
              BranchSideFuncs:
                - reconnect_transition__
                - vlog
            - BranchSide:      'lib/reconnect.c:402,21'
              BranchSideFuncs:
                - reconnect_transition__
                - vlog
        - Branch String:   'lib/reconnect.c:398,17'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:398,17'
              BranchSideFuncs:
                - vlog
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:401,13'
              BranchSideFuncs:
                - reconnect_transition__
        - Branch String:   'lib/reconnect.c:402,21'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:403,21'
              BranchSideFuncs:
                - reconnect_transition__
                - vlog
            - BranchSide:      'lib/reconnect.c:407,32'
              BranchSideFuncs:
                - reconnect_transition__
        - Branch String:   'lib/reconnect.c:403,21'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:403,21'
              BranchSideFuncs:
                - vlog
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:406,17'
              BranchSideFuncs:
                - reconnect_transition__
      Callsites:
        - Src:             'lib/reconnect.c:347,17'
          Dst:             ovs_strerror
        - Src:             'lib/reconnect.c:347,17'
          Dst:             vlog
        - Src:             'lib/reconnect.c:350,17'
          Dst:             vlog
        - Src:             'lib/reconnect.c:352,17'
          Dst:             vlog
        - Src:             'lib/reconnect.c:356,17'
          Dst:             ovs_strerror
        - Src:             'lib/reconnect.c:356,17'
          Dst:             vlog
        - Src:             'lib/reconnect.c:359,17'
          Dst:             vlog
        - Src:             'lib/reconnect.c:365,17'
          Dst:             ovs_strerror
        - Src:             'lib/reconnect.c:365,17'
          Dst:             vlog
        - Src:             'lib/reconnect.c:368,17'
          Dst:             vlog
        - Src:             'lib/reconnect.c:380,14'
          Dst:             reconnect_may_retry
        - Src:             'lib/reconnect.c:381,13'
          Dst:             reconnect_transition__
        - Src:             'lib/reconnect.c:398,17'
          Dst:             vlog
        - Src:             'lib/reconnect.c:403,21'
          Dst:             vlog
        - Src:             'lib/reconnect.c:410,9'
          Dst:             reconnect_transition__
    - functionName:    reconnect_may_retry
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 754
      functionLinenumberEnd: 759
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - fsm
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:756,19'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:756,22'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:756,19'
              BranchSideFuncs: []
        - Branch String:   'lib/reconnect.c:756,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:756,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:757,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    reconnect_connected
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - fsm
        - now
      BBCount:         11
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - is_connected_state
        - reconnect_connecting
        - reconnect_transition__
        - vlog
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:477,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:477,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:478,30'
              BranchSideFuncs:
                - reconnect_connecting
                - reconnect_transition__
                - vlog
        - Branch String:   'lib/reconnect.c:480,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:480,9'
              BranchSideFuncs:
                - vlog
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:481,32'
              BranchSideFuncs:
                - reconnect_transition__
      Callsites:
        - Src:             'lib/reconnect.c:477,10'
          Dst:             is_connected_state
        - Src:             'lib/reconnect.c:478,9'
          Dst:             reconnect_connecting
        - Src:             'lib/reconnect.c:480,9'
          Dst:             vlog
        - Src:             'lib/reconnect.c:481,9'
          Dst:             reconnect_transition__
    - functionName:    reconnect_listen_error
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - fsm
        - now
        - error
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - reconnect_disconnected
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:462,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:462,9'
              BranchSideFuncs:
                - reconnect_disconnected
            - BranchSide:      'lib/reconnect.c:463,32'
              BranchSideFuncs:
                - reconnect_disconnected
      Callsites:
        - Src:             'lib/reconnect.c:463,9'
          Dst:             reconnect_disconnected
    - functionName:    reconnect_listening
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 450
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - fsm
        - now
      BBCount:         11
      ICount:          60
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - reconnect_transition__
        - vlog
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:446,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:446,9'
              BranchSideFuncs:
                - reconnect_transition__
                - vlog
            - BranchSide:      'lib/reconnect.c:447,9'
              BranchSideFuncs:
                - reconnect_transition__
                - vlog
        - Branch String:   'lib/reconnect.c:447,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:447,9'
              BranchSideFuncs:
                - vlog
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:448,32'
              BranchSideFuncs:
                - reconnect_transition__
      Callsites:
        - Src:             'lib/reconnect.c:447,9'
          Dst:             vlog
        - Src:             'lib/reconnect.c:448,9'
          Dst:             reconnect_transition__
    - functionName:    reconnect_force_reconnect
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - fsm
        - now
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - reconnect_transition__
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:329,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:329,9'
              BranchSideFuncs:
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:330,32'
              BranchSideFuncs:
                - reconnect_transition__
      Callsites:
        - Src:             'lib/reconnect.c:330,9'
          Dst:             reconnect_transition__
    - functionName:    reconnect_disable
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - fsm
        - now
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - reconnect_transition__
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:317,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:317,9'
              BranchSideFuncs:
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:318,32'
              BranchSideFuncs:
                - reconnect_transition__
      Callsites:
        - Src:             'lib/reconnect.c:318,9'
          Dst:             reconnect_transition__
    - functionName:    reconnect_enable
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 305
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - fsm
        - now
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - reconnect_may_retry
        - reconnect_transition__
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:306,30'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:306,53'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:306,30'
              BranchSideFuncs: []
        - Branch String:   'lib/reconnect.c:306,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:306,9'
              BranchSideFuncs:
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:307,32'
              BranchSideFuncs:
                - reconnect_transition__
      Callsites:
        - Src:             'lib/reconnect.c:306,33'
          Dst:             reconnect_may_retry
        - Src:             'lib/reconnect.c:307,9'
          Dst:             reconnect_transition__
    - functionName:    reconnect_is_enabled
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - fsm
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_set_passive
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - size_t
      constantsTouched: []
      argNames:
        - fsm
        - passive
        - now
      BBCount:         17
      ICount:          94
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - reconnect_may_retry
        - reconnect_transition__
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:276,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:276,9'
              BranchSideFuncs:
                - reconnect_transition__
                - reconnect_may_retry
            - BranchSide:      'lib/reconnect.c:277,24'
              BranchSideFuncs:
                - reconnect_transition__
                - reconnect_may_retry
        - Branch String:   'lib/reconnect.c:279,13'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:280,15'
              BranchSideFuncs:
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:281,15'
              BranchSideFuncs:
                - reconnect_transition__
                - reconnect_may_retry
        - Branch String:   'lib/reconnect.c:279,13'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:282,36'
              BranchSideFuncs:
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:285,5'
              BranchSideFuncs: []
        - Branch String:   'lib/reconnect.c:281,41'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:279,13'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:281,64'
              BranchSideFuncs:
                - reconnect_may_retry
                - reconnect_transition__
        - Branch String:   'lib/reconnect.c:279,13'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:282,36'
              BranchSideFuncs:
                - reconnect_transition__
            - BranchSide:      'lib/reconnect.c:285,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/reconnect.c:281,44'
          Dst:             reconnect_may_retry
        - Src:             'lib/reconnect.c:282,13'
          Dst:             reconnect_transition__
    - functionName:    reconnect_is_passive
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - fsm
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_set_probe_interval
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - fsm
        - probe_interval
      BBCount:         7
      ICount:          37
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:259,27'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:259,44'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:259,27'
              BranchSideFuncs: []
        - Branch String:   'lib/reconnect.c:259,44'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:259,27'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:259,27'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    reconnect_set_backoff
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - fsm
        - min_backoff
        - max_backoff
      BBCount:         18
      ICount:          109
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:234,24'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:234,5'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:234,5'
              BranchSideFuncs: []
        - Branch String:   'lib/reconnect.c:235,25'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:235,5'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:236,27'
              BranchSideFuncs: []
        - Branch String:   'lib/reconnect.c:236,27'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:235,25'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:235,25'
              BranchSideFuncs: []
        - Branch String:   'lib/reconnect.c:238,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:239,28'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:242,9'
              BranchSideFuncs: []
        - Branch String:   'lib/reconnect.c:242,33'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:242,36'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:242,33'
              BranchSideFuncs: []
        - Branch String:   'lib/reconnect.c:242,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:242,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/reconnect.c:243,24'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    reconnect_set_backoff_free_tries
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - fsm
        - backoff_free_tries
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_get_max_tries
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - fsm
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_set_max_tries
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - fsm
        - max_tries
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_get_probe_interval
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - fsm
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_get_max_backoff
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - fsm
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_get_min_backoff
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - fsm
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_set_name
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - fsm
        - name
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - xstrdup
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:162,25'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:162,32'
              BranchSideFuncs:
                - xstrdup
            - BranchSide:      'lib/reconnect.c:162,25'
              BranchSideFuncs:
                - xstrdup
      Callsites:
        - Src:             'lib/reconnect.c:162,17'
          Dst:             xstrdup
    - functionName:    reconnect_get_name
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - fsm
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_set_quiet
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - fsm
        - quiet
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reconnect_destroy
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - fsm
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/reconnect.c:125,9'
          Branch Sides:
            - BranchSide:      'lib/reconnect.c:125,9'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'lib/reconnect.c:126,14'
              BranchSideFuncs:
                - free
                - free
      Callsites:       []
    - functionName:    reconnect_create
      functionSourceFile: '/src/openvswitch/lib/reconnect.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - now
      BBCount:         3
      ICount:          69
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xstrdup
        - xzalloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/reconnect.c:99,29'
          Dst:             xzalloc
        - Src:             'lib/reconnect.c:101,17'
          Dst:             xstrdup
    - functionName:    seq_change_init_coverage
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/seq.c:31,1'
          Branch Sides:
            - BranchSide:      'lib/seq.c:31,1'
              BranchSideFuncs:
                - coverage_counter_register
            - BranchSide:      'lib/seq.c:31,1'
              BranchSideFuncs:
                - coverage_counter_register
      Callsites:
        - Src:             'lib/seq.c:31,1'
          Dst:             coverage_counter_register
    - functionName:    seq_change_count
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_seq_change_get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/seq.c:31,1'
          Branch Sides:
            - BranchSide:      'lib/seq.c:31,1'
              BranchSideFuncs:
                - counter_seq_change_get
            - BranchSide:      'lib/seq.c:31,1'
              BranchSideFuncs:
                - counter_seq_change_get
      Callsites:
        - Src:             'lib/seq.c:31,1'
          Dst:             counter_seq_change_get
    - functionName:    counter_seq_change_get
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_seq_change_get_unsafe
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/seq.c:31,1'
          Branch Sides:
            - BranchSide:      'lib/seq.c:31,1'
              BranchSideFuncs:
                - counter_seq_change_get_unsafe
            - BranchSide:      'lib/seq.c:31,1'
              BranchSideFuncs:
                - counter_seq_change_get_unsafe
      Callsites:
        - Src:             'lib/seq.c:31,1'
          Dst:             counter_seq_change_get_unsafe
    - functionName:    counter_seq_change_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_next__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - start
      BBCount:         8
      ICount:          55
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:403,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:404,34'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:409,5'
              BranchSideFuncs: []
        - Branch String:   './include/openvswitch/hmap.h:405,13'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:406,20'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:408,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    hmap_next
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_next__
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:430,13'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:431,15'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:432,27'
              BranchSideFuncs:
                - hmap_next__.1127
      Callsites:
        - Src:             './include/openvswitch/hmap.h:432,15'
          Dst:             hmap_next__
    - functionName:    hmap_first
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:417,12'
          Dst:             hmap_next__
    - functionName:    ovs_list_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - elem
      BBCount:         1
      ICount:          26
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
      BBCount:         4
      ICount:          51
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:319,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:320,21'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:322,15'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    seq_waiter_destroy
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - waiter
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_remove
        - ovs_list_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:303,5'
          Dst:             hmap_remove
        - Src:             'lib/seq.c:304,5'
          Dst:             ovs_list_remove
    - functionName:    seq_thread_exit
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 284
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - thread_
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - latch_destroy
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - seq_thread_woke
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:279,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/seq.c:280,5'
          Dst:             seq_thread_woke
        - Src:             'lib/seq.c:281,5'
          Dst:             latch_destroy
        - Src:             'lib/seq.c:283,5'
          Dst:             ovs_mutex_unlock
    - functionName:    seq_thread_woke
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - thread
      BBCount:         10
      ICount:          73
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - latch_poll
        - seq_waiter_destroy
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/seq.c:292,5'
          Branch Sides:
            - BranchSide:      'lib/seq.c:292,5'
              BranchSideFuncs:
                - latch_poll
                - seq_waiter_destroy
            - BranchSide:      'lib/seq.c:292,5'
              BranchSideFuncs:
                - latch_poll
                - seq_waiter_destroy
        - Branch String:   'lib/seq.c:292,5'
          Branch Sides:
            - BranchSide:      'lib/seq.c:293,9'
              BranchSideFuncs:
                - seq_waiter_destroy
                - latch_poll
            - BranchSide:      'lib/seq.c:296,17'
              BranchSideFuncs:
                - latch_poll
      Callsites:
        - Src:             'lib/seq.c:294,9'
          Dst:             seq_waiter_destroy
        - Src:             'lib/seq.c:296,5'
          Dst:             latch_poll
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - once
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/thread.h:161,12'
          Branch Sides:
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs:
                - ovsthread_once_start__
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    ovs_list_insert
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - before
        - elem
      BBCount:         1
      ICount:          30
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_init
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_insert_fast
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - node
        - hash
      BBCount:         1
      ICount:          42
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_rot
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - x
        - k
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mhash_add__
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_rot
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/hash.h:66,9'
          Branch Sides:
            - BranchSide:      'lib/hash.h:67,16'
              BranchSideFuncs:
                - hash_rot.1138
            - BranchSide:      'lib/hash.h:70,10'
              BranchSideFuncs:
                - hash_rot.1138
      Callsites:
        - Src:             'lib/hash.h:71,12'
          Dst:             hash_rot
    - functionName:    mhash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_rot
        - mhash_add__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:78,12'
          Dst:             mhash_add__
        - Src:             'lib/hash.h:79,12'
          Dst:             hash_rot
    - functionName:    mhash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - hash
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:109,12'
          Dst:             mhash_add
    - functionName:    hash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - final
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:119,12'
          Dst:             mhash_finish
    - functionName:    hash_2words
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - x
        - y
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add
        - hash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:154,33'
          Dst:             hash_add
        - Src:             'lib/hash.h:154,24'
          Dst:             hash_add
        - Src:             'lib/hash.h:154,12'
          Dst:             hash_finish
    - functionName:    ovsthread_id_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_id_get
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsthread_id_get_unsafe
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.h:458,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.h:458,1'
              BranchSideFuncs:
                - ovsthread_id_get_unsafe.1145
            - BranchSide:      'lib/ovs-thread.h:458,1'
              BranchSideFuncs:
                - ovsthread_id_get_unsafe.1145
      Callsites:
        - Src:             'lib/ovs-thread.h:458,1'
          Dst:             ovsthread_id_get_unsafe
    - functionName:    ovs_list_push_back
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
        - elem
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:205,5'
          Dst:             ovs_list_insert
    - functionName:    seq_thread_get
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - latch_init
        - ovs_list_init
        - pthread_getspecific
        - xmalloc
        - xpthread_setspecific
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/seq.c:261,53'
          Branch Sides:
            - BranchSide:      'lib/seq.c:261,24'
              BranchSideFuncs:
                - pthread_getspecific
                - xmalloc
                - ovs_list_init.1136
                - latch_init
                - xpthread_setspecific
            - BranchSide:      'lib/seq.c:261,53'
              BranchSideFuncs:
                - pthread_getspecific
                - xmalloc
                - ovs_list_init.1136
                - latch_init
                - xpthread_setspecific
        - Branch String:   'lib/seq.c:262,9'
          Branch Sides:
            - BranchSide:      'lib/seq.c:262,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/seq.c:263,18'
              BranchSideFuncs:
                - xmalloc
                - ovs_list_init.1136
                - latch_init
                - xpthread_setspecific
      Callsites:
        - Src:             'lib/seq.c:261,33'
          Dst:             pthread_getspecific
        - Src:             'lib/seq.c:263,18'
          Dst:             xmalloc
        - Src:             'lib/seq.c:264,9'
          Dst:             ovs_list_init
        - Src:             'lib/seq.c:265,9'
          Dst:             latch_init
        - Src:             'lib/seq.c:268,9'
          Dst:             xpthread_setspecific
    - functionName:    hmap_insert_at
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
        - hash
        - where
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_expand_at
        - hmap_insert_fast
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:308,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:308,9'
              BranchSideFuncs:
                - hmap_expand_at
            - BranchSide:      './include/openvswitch/hmap.h:309,24'
              BranchSideFuncs:
                - hmap_expand_at
      Callsites:
        - Src:             './include/openvswitch/hmap.h:307,5'
          Dst:             hmap_insert_fast
        - Src:             './include/openvswitch/hmap.h:309,9'
          Dst:             hmap_expand_at
    - functionName:    hmap_next_in_bucket
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - node
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_first_in_bucket
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 368
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - hash
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_int
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - x
        - basis
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_2words
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:409,12'
          Dst:             hash_2words
    - functionName:    ovsthread_id_self
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_id_get
        - ovsthread_id_init
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.h:468,24'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.h:468,18'
              BranchSideFuncs:
                - ovsthread_id_get.1146
                - ovsthread_id_init
            - BranchSide:      'lib/ovs-thread.h:468,24'
              BranchSideFuncs:
                - ovsthread_id_get.1146
                - ovsthread_id_init
        - Branch String:   'lib/ovs-thread.h:470,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.h:470,9'
              BranchSideFuncs:
                - ovsthread_id_init
            - BranchSide:      'lib/ovs-thread.h:471,14'
              BranchSideFuncs:
                - ovsthread_id_init
      Callsites:
        - Src:             'lib/ovs-thread.h:468,24'
          Dst:             ovsthread_id_get
        - Src:             'lib/ovs-thread.h:471,14'
          Dst:             ovsthread_id_init
    - functionName:    seq_woke
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 244
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - pthread_getspecific
        - seq_init
        - seq_thread_woke
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/seq.c:235,5'
          Branch Sides:
            - BranchSide:      'lib/seq.c:233,24'
              BranchSideFuncs:
                - seq_init
                - pthread_getspecific
                - ovs_mutex_lock_at
                - seq_thread_woke
                - ovs_mutex_unlock
            - BranchSide:      'lib/seq.c:235,5'
              BranchSideFuncs:
                - seq_init
                - pthread_getspecific
                - ovs_mutex_lock_at
                - seq_thread_woke
                - ovs_mutex_unlock
        - Branch String:   'lib/seq.c:238,9'
          Branch Sides:
            - BranchSide:      'lib/seq.c:238,9'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - seq_thread_woke
                - ovs_mutex_unlock
            - BranchSide:      'lib/seq.c:239,9'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - seq_thread_woke
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/seq.c:235,5'
          Dst:             seq_init
        - Src:             'lib/seq.c:237,14'
          Dst:             pthread_getspecific
        - Src:             'lib/seq.c:239,9'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/seq.c:240,9'
          Dst:             seq_thread_woke
        - Src:             'lib/seq.c:242,9'
          Dst:             ovs_mutex_unlock
    - functionName:    seq_init
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 255
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          23
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_done
        - ovsthread_once_start
        - seq_thread_exit
        - xpthread_key_create
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/seq.c:251,9'
          Branch Sides:
            - BranchSide:      'lib/seq.c:251,9'
              BranchSideFuncs:
                - ovsthread_once_start.1134
                - xpthread_key_create
                - ovsthread_once_done
            - BranchSide:      'lib/seq.c:251,9'
              BranchSideFuncs:
                - ovsthread_once_start.1134
                - xpthread_key_create
                - ovsthread_once_done
        - Branch String:   'lib/seq.c:251,9'
          Branch Sides:
            - BranchSide:      'lib/seq.c:251,9'
              BranchSideFuncs:
                - xpthread_key_create
                - ovsthread_once_done
            - BranchSide:      'lib/seq.c:252,9'
              BranchSideFuncs:
                - xpthread_key_create
                - ovsthread_once_done
      Callsites:
        - Src:             'lib/seq.c:251,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/seq.c:252,9'
          Dst:             xpthread_key_create
        - Src:             'lib/seq.c:252,9'
          Dst:             seq_thread_exit
        - Src:             'lib/seq.c:253,9'
          Dst:             ovsthread_once_done
    - functionName:    seq_wait__
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - seq
        - value
        - where
      BBCount:         18
      ICount:          150
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - hash_int
        - hmap_first_in_bucket
        - hmap_insert_at
        - hmap_next_in_bucket
        - latch_wait_at
        - ovs_list_push_back
        - ovsthread_id_self
        - poll_immediate_wake_at
        - seq_thread_get
        - xmalloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/seq.c:174,5'
          Branch Sides:
            - BranchSide:      'lib/seq.c:174,5'
              BranchSideFuncs:
                - xmalloc
                - hmap_insert_at.1148
                - seq_thread_get
                - ovs_list_push_back.1147
                - latch_wait_at
                - hmap_next_in_bucket
                - poll_immediate_wake_at
            - BranchSide:      'lib/seq.c:174,5'
              BranchSideFuncs:
                - xmalloc
                - hmap_insert_at.1148
                - seq_thread_get
                - ovs_list_push_back.1147
                - latch_wait_at
                - hmap_next_in_bucket
                - poll_immediate_wake_at
        - Branch String:   'lib/seq.c:174,5'
          Branch Sides:
            - BranchSide:      'lib/seq.c:175,13'
              BranchSideFuncs:
                - hmap_next_in_bucket
                - xmalloc
                - hmap_insert_at.1148
                - seq_thread_get
                - ovs_list_push_back.1147
                - latch_wait_at
                - poll_immediate_wake_at
            - BranchSide:      'lib/seq.c:187,14'
              BranchSideFuncs:
                - xmalloc
                - hmap_insert_at.1148
                - seq_thread_get
                - ovs_list_push_back.1147
                - latch_wait_at
        - Branch String:   'lib/seq.c:175,13'
          Branch Sides:
            - BranchSide:      'lib/seq.c:176,17'
              BranchSideFuncs:
                - poll_immediate_wake_at
            - BranchSide:      'lib/seq.c:185,5'
              BranchSideFuncs:
                - hmap_next_in_bucket
                - xmalloc
                - hmap_insert_at.1148
                - seq_thread_get
                - ovs_list_push_back.1147
                - latch_wait_at
                - poll_immediate_wake_at
        - Branch String:   'lib/seq.c:176,17'
          Branch Sides:
            - BranchSide:      'lib/seq.c:0,0'
              BranchSideFuncs:
                - poll_immediate_wake_at
            - BranchSide:      'lib/seq.c:179,40'
              BranchSideFuncs:
                - poll_immediate_wake_at
        - Branch String:   'lib/seq.c:195,9'
          Branch Sides:
            - BranchSide:      'lib/seq.c:195,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/seq.c:196,24'
              BranchSideFuncs:
                - latch_wait_at
      Callsites:
        - Src:             'lib/seq.c:170,23'
          Dst:             ovsthread_id_self
        - Src:             'lib/seq.c:171,21'
          Dst:             hash_int
        - Src:             'lib/seq.c:174,5'
          Dst:             hmap_first_in_bucket
        - Src:             'lib/seq.c:179,17'
          Dst:             poll_immediate_wake_at
        - Src:             'lib/seq.c:174,5'
          Dst:             hmap_next_in_bucket
        - Src:             'lib/seq.c:187,14'
          Dst:             xmalloc
        - Src:             'lib/seq.c:189,5'
          Dst:             hmap_insert_at
        - Src:             'lib/seq.c:192,22'
          Dst:             seq_thread_get
        - Src:             'lib/seq.c:193,5'
          Dst:             ovs_list_push_back
        - Src:             'lib/seq.c:196,9'
          Dst:             latch_wait_at
    - functionName:    seq_wait_at
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - seq_
        - value
        - where
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - poll_immediate_wake_at
        - seq_read
        - seq_wait__
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/seq.c:219,9'
          Branch Sides:
            - BranchSide:      'lib/seq.c:220,20'
              BranchSideFuncs:
                - seq_wait__
                - ovs_mutex_unlock
            - BranchSide:      'lib/seq.c:222,32'
              BranchSideFuncs:
                - poll_immediate_wake_at
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/seq.c:218,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/seq.c:219,18'
          Dst:             seq_read
        - Src:             'lib/seq.c:220,9'
          Dst:             seq_wait__
        - Src:             'lib/seq.c:222,9'
          Dst:             poll_immediate_wake_at
        - Src:             'lib/seq.c:224,5'
          Dst:             ovs_mutex_unlock
    - functionName:    seq_read
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - seq
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    seq_change
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - seq
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - seq_change_protected
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:145,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/seq.c:146,5'
          Dst:             seq_change_protected
        - Src:             'lib/seq.c:147,5'
          Dst:             ovs_mutex_unlock
    - functionName:    seq_change_protected
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - seq
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - seq_change_add
        - seq_wake_waiters
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:133,5'
          Dst:             seq_change_add
        - Src:             'lib/seq.c:136,5'
          Dst:             seq_wake_waiters
    - functionName:    seq_change_add
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - n
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_seq_change_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:31,1'
          Dst:             counter_seq_change_get
    - functionName:    seq_wake_waiters
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 318
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - seq
      BBCount:         10
      ICount:          67
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - hmap_first
        - hmap_next
        - latch_set
        - seq_waiter_destroy
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/seq.c:314,5'
          Branch Sides:
            - BranchSide:      'lib/seq.c:314,5'
              BranchSideFuncs:
                - hmap_next.1128
                - latch_set
                - seq_waiter_destroy
            - BranchSide:      'lib/seq.c:314,5'
              BranchSideFuncs:
                - latch_set
                - seq_waiter_destroy
                - hmap_next.1128
        - Branch String:   'lib/seq.c:314,5'
          Branch Sides:
            - BranchSide:      'lib/seq.c:315,20'
              BranchSideFuncs:
                - latch_set
                - seq_waiter_destroy
                - hmap_next.1128
            - BranchSide:      'lib/seq.c:318,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/seq.c:314,5'
          Dst:             hmap_first
        - Src:             'lib/seq.c:314,5'
          Dst:             hmap_next
        - Src:             'lib/seq.c:315,9'
          Dst:             latch_set
        - Src:             'lib/seq.c:316,9'
          Dst:             seq_waiter_destroy
    - functionName:    seq_unlock
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/seq.c:122,5'
          Branch Sides:
            - BranchSide:      'lib/seq.c:122,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
            - BranchSide:      'lib/seq.c:122,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/seq.c:122,5'
          Dst:             ovs_mutex_unlock
    - functionName:    seq_lock
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_lock_at
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/seq.c:115,5'
          Branch Sides:
            - BranchSide:      'lib/seq.c:115,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
            - BranchSide:      'lib/seq.c:115,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
      Callsites:
        - Src:             'lib/seq.c:115,5'
          Dst:             ovs_mutex_lock_at
    - functionName:    seq_try_lock
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_trylock_at
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/seq.c:108,12'
          Branch Sides:
            - BranchSide:      'lib/seq.c:108,12'
              BranchSideFuncs:
                - ovs_mutex_trylock_at
            - BranchSide:      'lib/seq.c:108,12'
              BranchSideFuncs:
                - ovs_mutex_trylock_at
      Callsites:
        - Src:             'lib/seq.c:108,12'
          Dst:             ovs_mutex_trylock_at
    - functionName:    seq_destroy
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - seq
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_destroy
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - seq_wake_waiters
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/seq.c:98,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/seq.c:99,5'
          Dst:             seq_wake_waiters
        - Src:             'lib/seq.c:100,5'
          Dst:             hmap_destroy
        - Src:             'lib/seq.c:102,5'
          Dst:             ovs_mutex_unlock
    - functionName:    seq_create
      functionSourceFile: '/src/openvswitch/lib/seq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_init
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - seq_change_add
        - seq_init
        - xmalloc
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/seq.c:78,5'
          Branch Sides:
            - BranchSide:      'lib/seq.c:75,14'
              BranchSideFuncs:
                - seq_init
                - xmalloc
                - seq_change_add
                - ovs_mutex_lock_at
                - hmap_init
                - ovs_mutex_unlock
            - BranchSide:      'lib/seq.c:78,5'
              BranchSideFuncs:
                - seq_init
                - xmalloc
                - seq_change_add
                - ovs_mutex_lock_at
                - hmap_init
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/seq.c:78,5'
          Dst:             seq_init
        - Src:             'lib/seq.c:80,11'
          Dst:             xmalloc
        - Src:             'lib/seq.c:82,5'
          Dst:             seq_change_add
        - Src:             'lib/seq.c:84,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/seq.c:87,5'
          Dst:             hmap_init
        - Src:             'lib/seq.c:88,5'
          Dst:             ovs_mutex_unlock
    - functionName:    hmap_next_with_hash__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - node
        - hash
      BBCount:         7
      ICount:          42
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:349,25'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:349,28'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:349,5'
              BranchSideFuncs: []
        - Branch String:   './include/openvswitch/hmap.h:349,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:350,16'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:352,12'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    hmap_next_with_hash
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - node
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next_with_hash__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:396,12'
          Dst:             hmap_next_with_hash__
    - functionName:    hmap_first_with_hash
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - hash
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next_with_hash__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:360,12'
          Dst:             hmap_next_with_hash__
    - functionName:    hash_string
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - s
        - basis
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_bytes
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:404,26'
          Dst:             strlen
        - Src:             'lib/hash.h:404,12'
          Dst:             hash_bytes
    - functionName:    hmap_insert_fast
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - node
        - hash
      BBCount:         1
      ICount:          42
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_insert_at
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
        - hash
        - where
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_expand_at
        - hmap_insert_fast
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:308,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:308,9'
              BranchSideFuncs:
                - hmap_expand_at
            - BranchSide:      './include/openvswitch/hmap.h:309,24'
              BranchSideFuncs:
                - hmap_expand_at
      Callsites:
        - Src:             './include/openvswitch/hmap.h:307,5'
          Dst:             hmap_insert_fast
        - Src:             './include/openvswitch/hmap.h:309,9'
          Dst:             hmap_expand_at
    - functionName:    hmap_next__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - start
      BBCount:         8
      ICount:          55
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:403,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:404,34'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:409,5'
              BranchSideFuncs: []
        - Branch String:   './include/openvswitch/hmap.h:405,13'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:406,20'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:408,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    shash_random_node
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 340
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - sh
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_random_node
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:341,12'
          Dst:             hmap_random_node
    - functionName:    shash_equal_keys
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         15
      ICount:          88
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - hmap_count
        - hmap_first
        - hmap_next
        - shash_find
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/shash.c:322,9'
          Branch Sides:
            - BranchSide:      'lib/shash.c:323,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/shash.c:325,5'
              BranchSideFuncs:
                - hmap_first.1267
                - shash_find
                - hmap_next.1270
        - Branch String:   'lib/shash.c:325,5'
          Branch Sides:
            - BranchSide:      'lib/shash.c:325,5'
              BranchSideFuncs:
                - shash_find
                - hmap_next.1270
            - BranchSide:      'lib/shash.c:325,5'
              BranchSideFuncs:
                - shash_find
                - hmap_next.1270
        - Branch String:   'lib/shash.c:325,5'
          Branch Sides:
            - BranchSide:      'lib/shash.c:326,25'
              BranchSideFuncs:
                - shash_find
                - hmap_next.1270
            - BranchSide:      'lib/shash.c:330,5'
              BranchSideFuncs: []
        - Branch String:   'lib/shash.c:326,13'
          Branch Sides:
            - BranchSide:      'lib/shash.c:327,13'
              BranchSideFuncs:
                - hmap_next.1270
                - shash_find
            - BranchSide:      'lib/shash.c:329,5'
              BranchSideFuncs:
                - hmap_next.1270
                - shash_find
      Callsites:
        - Src:             'lib/shash.c:322,9'
          Dst:             hmap_count
        - Src:             'lib/shash.c:322,32'
          Dst:             hmap_count
        - Src:             'lib/shash.c:325,5'
          Dst:             hmap_first
        - Src:             'lib/shash.c:326,14'
          Dst:             shash_find
        - Src:             'lib/shash.c:325,5'
          Dst:             hmap_next
    - functionName:    hmap_count
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_first
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next__
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:417,12'
          Dst:             hmap_next__
    - functionName:    shash_find
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sh
        - name
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_name
        - shash_find__
        - strlen
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:237,35'
          Dst:             strlen
        - Src:             'lib/shash.c:237,49'
          Dst:             hash_name
        - Src:             'lib/shash.c:237,12'
          Dst:             shash_find__
    - functionName:    hmap_next
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_next__
      functionUses:    4
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:430,13'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:431,15'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:432,27'
              BranchSideFuncs:
                - hmap_next__.1265
      Callsites:
        - Src:             './include/openvswitch/hmap.h:432,15'
          Dst:             hmap_next__
    - functionName:    hash_name
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_string
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:29,12'
          Dst:             hash_string
    - functionName:    shash_find__
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 231
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - sh
        - name
        - name_len
        - hash
      BBCount:         16
      ICount:          99
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - hmap_first_with_hash
        - hmap_next_with_hash
        - strncmp
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/shash.c:225,5'
          Branch Sides:
            - BranchSide:      'lib/shash.c:225,5'
              BranchSideFuncs:
                - strncmp
                - hmap_next_with_hash.1260
            - BranchSide:      'lib/shash.c:225,5'
              BranchSideFuncs:
                - strncmp
                - hmap_next_with_hash.1260
        - Branch String:   'lib/shash.c:225,5'
          Branch Sides:
            - BranchSide:      'lib/shash.c:226,22'
              BranchSideFuncs:
                - strncmp
                - hmap_next_with_hash.1260
            - BranchSide:      'lib/shash.c:230,5'
              BranchSideFuncs: []
        - Branch String:   'lib/shash.c:226,50'
          Branch Sides:
            - BranchSide:      'lib/shash.c:226,54'
              BranchSideFuncs:
                - hmap_next_with_hash.1260
                - strncmp
            - BranchSide:      'lib/shash.c:229,5'
              BranchSideFuncs:
                - hmap_next_with_hash.1260
                - strncmp
        - Branch String:   'lib/shash.c:226,13'
          Branch Sides:
            - BranchSide:      'lib/shash.c:227,20'
              BranchSideFuncs:
                - hmap_next_with_hash.1260
                - strncmp
            - BranchSide:      'lib/shash.c:229,5'
              BranchSideFuncs:
                - hmap_next_with_hash.1260
                - strncmp
      Callsites:
        - Src:             'lib/shash.c:225,5'
          Dst:             hmap_first_with_hash
        - Src:             'lib/shash.c:226,14'
          Dst:             strncmp
        - Src:             'lib/shash.c:225,5'
          Dst:             hmap_next_with_hash
    - functionName:    compare_nodes_by_name
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a_
        - b_
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:288,12'
          Dst:             strcmp
    - functionName:    shash_sort
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 313
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - sh
      BBCount:         13
      ICount:          97
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - compare_nodes_by_name
        - hmap_first
        - hmap_next
        - qsort
        - shash_count
        - shash_is_empty
        - xmalloc
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/shash.c:294,9'
          Branch Sides:
            - BranchSide:      'lib/shash.c:295,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/shash.c:301,25'
              BranchSideFuncs:
                - shash_count
                - xmalloc
                - hmap_first.1267
                - qsort
                - hmap_next.1270
        - Branch String:   'lib/shash.c:304,9'
          Branch Sides:
            - BranchSide:      'lib/shash.c:304,9'
              BranchSideFuncs:
                - qsort
                - hmap_next.1270
            - BranchSide:      'lib/shash.c:304,9'
              BranchSideFuncs:
                - qsort
                - hmap_next.1270
        - Branch String:   'lib/shash.c:304,9'
          Branch Sides:
            - BranchSide:      'lib/shash.c:305,26'
              BranchSideFuncs:
                - hmap_next.1270
                - qsort
            - BranchSide:      'lib/shash.c:307,9'
              BranchSideFuncs:
                - qsort
      Callsites:
        - Src:             'lib/shash.c:294,9'
          Dst:             shash_is_empty
        - Src:             'lib/shash.c:301,13'
          Dst:             shash_count
        - Src:             'lib/shash.c:302,17'
          Dst:             xmalloc
        - Src:             'lib/shash.c:304,9'
          Dst:             hmap_first
        - Src:             'lib/shash.c:304,9'
          Dst:             hmap_next
        - Src:             'lib/shash.c:309,9'
          Dst:             qsort
        - Src:             'lib/shash.c:309,9'
          Dst:             compare_nodes_by_name
    - functionName:    shash_is_empty
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - shash
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_is_empty
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:98,12'
          Dst:             hmap_is_empty
    - functionName:    shash_count
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - shash
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_count
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:105,12'
          Dst:             hmap_count
    - functionName:    qsort
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_is_empty
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    shash_first
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 280
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - shash
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_first
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/shash.c:280,12'
          Branch Sides:
            - BranchSide:      'lib/shash.c:280,19'
              BranchSideFuncs: []
            - BranchSide:      'lib/shash.c:280,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/shash.c:279,30'
          Dst:             hmap_first
    - functionName:    shash_find_and_delete_assert
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sh
        - name
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - shash_find_and_delete
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:271,18'
          Dst:             shash_find_and_delete
    - functionName:    shash_find_and_delete
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sh
        - name
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - shash_delete
        - shash_find
      functionUses:    6
      BranchProfiles:
        - Branch String:   'lib/shash.c:259,9'
          Branch Sides:
            - BranchSide:      'lib/shash.c:260,22'
              BranchSideFuncs:
                - shash_delete
            - BranchSide:      'lib/shash.c:264,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/shash.c:258,31'
          Dst:             shash_find
        - Src:             'lib/shash.c:261,9'
          Dst:             shash_delete
    - functionName:    shash_delete
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sh
        - node
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - shash_steal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:199,10'
          Dst:             shash_steal
    - functionName:    shash_steal
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sh
        - node
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_remove
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/shash.c:208,9'
          Branch Sides:
            - BranchSide:      'lib/shash.c:209,9'
              BranchSideFuncs:
                - hmap_remove.1283
                - free
            - BranchSide:      'lib/shash.c:212,18'
              BranchSideFuncs:
                - hmap_remove.1283
                - free
      Callsites:
        - Src:             'lib/shash.c:214,5'
          Dst:             hmap_remove
    - functionName:    hmap_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
      BBCount:         4
      ICount:          51
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:319,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:320,21'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:322,15'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    shash_find_data
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sh
        - name
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - shash_find
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/shash.c:252,12'
          Branch Sides:
            - BranchSide:      'lib/shash.c:252,19'
              BranchSideFuncs: []
            - BranchSide:      'lib/shash.c:252,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/shash.c:251,31'
          Dst:             shash_find
    - functionName:    shash_find_len
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - sh
        - name
        - len
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_bytes
        - shash_find__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:245,40'
          Dst:             hash_bytes
        - Src:             'lib/shash.c:245,12'
          Dst:             shash_find__
    - functionName:    shash_replace_nocopy
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sh
        - name
        - data
      BBCount:         6
      ICount:          67
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_name
        - shash_add_nocopy__
        - shash_find__
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/shash.c:183,9'
          Branch Sides:
            - BranchSide:      'lib/shash.c:184,28'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/shash.c:187,14'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'lib/shash.c:179,19'
          Dst:             hash_name
        - Src:             'lib/shash.c:182,35'
          Dst:             strlen
        - Src:             'lib/shash.c:182,12'
          Dst:             shash_find__
        - Src:             'lib/shash.c:184,9'
          Dst:             shash_add_nocopy__
    - functionName:    shash_add_nocopy__
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - sh
        - name
        - data
        - hash
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_insert_at
        - xmalloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:111,31'
          Dst:             xmalloc
        - Src:             'lib/shash.c:114,5'
          Dst:             hmap_insert_at
    - functionName:    shash_replace
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sh
        - name
        - data
      BBCount:         6
      ICount:          66
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_name
        - shash_add_nocopy__
        - shash_find__
        - strlen
        - xstrdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/shash.c:161,9'
          Branch Sides:
            - BranchSide:      'lib/shash.c:162,28'
              BranchSideFuncs: []
            - BranchSide:      'lib/shash.c:165,26'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/shash.c:157,19'
          Dst:             hash_name
        - Src:             'lib/shash.c:160,35'
          Dst:             strlen
        - Src:             'lib/shash.c:160,12'
          Dst:             shash_find__
        - Src:             'lib/shash.c:162,32'
          Dst:             xstrdup
        - Src:             'lib/shash.c:162,9'
          Dst:             shash_add_nocopy__
    - functionName:    shash_add_assert
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sh
        - name
        - data
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - shash_add_once
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:148,5'
          Dst:             shash_add_once
    - functionName:    shash_add_once
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sh
        - name
        - data
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - shash_add
        - shash_find
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/shash.c:137,9'
          Branch Sides:
            - BranchSide:      'lib/shash.c:138,19'
              BranchSideFuncs: []
            - BranchSide:      'lib/shash.c:141,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/shash.c:137,10'
          Dst:             shash_find
        - Src:             'lib/shash.c:138,9'
          Dst:             shash_add
    - functionName:    shash_add
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sh
        - name
        - data
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - shash_add_nocopy
        - xstrdup
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:131,33'
          Dst:             xstrdup
        - Src:             'lib/shash.c:131,12'
          Dst:             shash_add_nocopy
    - functionName:    shash_add_nocopy
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sh
        - name
        - data
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_name
        - shash_add_nocopy__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:123,47'
          Dst:             hash_name
        - Src:             'lib/shash.c:123,12'
          Dst:             shash_add_nocopy__
    - functionName:    shash_moved
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - sh
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_moved
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:66,5'
          Dst:             hmap_moved
    - functionName:    shash_swap
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_swap
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:60,5'
          Dst:             hmap_swap
    - functionName:    shash_clear_free_data
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - sh
      BBCount:         10
      ICount:          75
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - hmap_first
        - hmap_next
        - hmap_remove
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/shash.c:87,5'
          Branch Sides:
            - BranchSide:      'lib/shash.c:87,5'
              BranchSideFuncs:
                - hmap_next.1270
                - hmap_remove.1283
                - free
                - free
                - free
            - BranchSide:      'lib/shash.c:87,5'
              BranchSideFuncs:
                - hmap_remove.1283
                - free
                - free
                - free
                - hmap_next.1270
        - Branch String:   'lib/shash.c:87,5'
          Branch Sides:
            - BranchSide:      'lib/shash.c:88,22'
              BranchSideFuncs:
                - hmap_remove.1283
                - free
                - free
                - free
                - hmap_next.1270
            - BranchSide:      'lib/shash.c:93,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/shash.c:87,5'
          Dst:             hmap_first
        - Src:             'lib/shash.c:87,5'
          Dst:             hmap_next
        - Src:             'lib/shash.c:88,9'
          Dst:             hmap_remove
    - functionName:    shash_destroy_free_data
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - sh
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_destroy
        - shash_clear_free_data
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/shash.c:51,9'
          Branch Sides:
            - BranchSide:      'lib/shash.c:51,9'
              BranchSideFuncs:
                - shash_clear_free_data
                - hmap_destroy
            - BranchSide:      'lib/shash.c:52,31'
              BranchSideFuncs:
                - shash_clear_free_data
                - hmap_destroy
      Callsites:
        - Src:             'lib/shash.c:52,9'
          Dst:             shash_clear_free_data
        - Src:             'lib/shash.c:53,9'
          Dst:             hmap_destroy
    - functionName:    shash_clear
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 71
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - sh
      BBCount:         10
      ICount:          71
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - hmap_first
        - hmap_next
        - hmap_remove
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/shash.c:74,5'
          Branch Sides:
            - BranchSide:      'lib/shash.c:74,5'
              BranchSideFuncs:
                - hmap_next.1270
                - hmap_remove.1283
                - free
                - free
            - BranchSide:      'lib/shash.c:74,5'
              BranchSideFuncs:
                - hmap_remove.1283
                - free
                - free
                - hmap_next.1270
        - Branch String:   'lib/shash.c:74,5'
          Branch Sides:
            - BranchSide:      'lib/shash.c:75,22'
              BranchSideFuncs:
                - hmap_remove.1283
                - free
                - free
                - hmap_next.1270
            - BranchSide:      'lib/shash.c:79,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/shash.c:74,5'
          Dst:             hmap_first
        - Src:             'lib/shash.c:74,5'
          Dst:             hmap_next
        - Src:             'lib/shash.c:75,9'
          Dst:             hmap_remove
    - functionName:    shash_destroy
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - sh
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_destroy
        - shash_clear
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/shash.c:41,9'
          Branch Sides:
            - BranchSide:      'lib/shash.c:41,9'
              BranchSideFuncs:
                - shash_clear
                - hmap_destroy
            - BranchSide:      'lib/shash.c:42,21'
              BranchSideFuncs:
                - shash_clear
                - hmap_destroy
      Callsites:
        - Src:             'lib/shash.c:42,9'
          Dst:             shash_clear
        - Src:             'lib/shash.c:43,9'
          Dst:             hmap_destroy
    - functionName:    shash_init
      functionSourceFile: '/src/openvswitch/lib/shash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - sh
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/shash.c:35,5'
          Dst:             hmap_init
    - functionName:    init_this_module_socket_util
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:53,1'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:53,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/socket-util.c:53,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/socket-util.c:53,1'
          Dst:             vlog_insert_module
    - functionName:    is_safe_name
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1135
      functionLinenumberEnd: 1145
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
      BBCount:         20
      ICount:          111
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - __ctype_b_loc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:1136,18'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1136,21'
              BranchSideFuncs:
                - __ctype_b_loc
                - __ctype_b_loc
            - BranchSide:      'lib/socket-util.c:1137,9'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:1136,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1137,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:1139,26'
              BranchSideFuncs:
                - __ctype_b_loc
        - Branch String:   'lib/socket-util.c:1139,5'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1140,14'
              BranchSideFuncs:
                - __ctype_b_loc
            - BranchSide:      'lib/socket-util.c:1144,5'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:1140,42'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1140,46'
              BranchSideFuncs:
                - __ctype_b_loc
            - BranchSide:      'lib/socket-util.c:1143,5'
              BranchSideFuncs:
                - __ctype_b_loc
        - Branch String:   'lib/socket-util.c:1140,55'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1140,59'
              BranchSideFuncs:
                - __ctype_b_loc
            - BranchSide:      'lib/socket-util.c:1143,5'
              BranchSideFuncs:
                - __ctype_b_loc
        - Branch String:   'lib/socket-util.c:1140,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1141,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:1143,5'
              BranchSideFuncs:
                - __ctype_b_loc
      Callsites:
        - Src:             'lib/socket-util.c:1136,21'
          Dst:             __ctype_b_loc
        - Src:             'lib/socket-util.c:1140,14'
          Dst:             __ctype_b_loc
    - functionName:    ds_put_char
      functionSourceFile: '/src/openvswitch/./include/openvswitch/dynamic-string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ds
        - c
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_put_char__
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/dynamic-string.h:95,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/dynamic-string.h:96,36'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/dynamic-string.h:99,23'
              BranchSideFuncs:
                - ds_put_char__
      Callsites:
        - Src:             './include/openvswitch/dynamic-string.h:99,9'
          Dst:             ds_put_char__
    - functionName:    parse_sockaddr_components_dns
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 436
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - ss
        - host_s
        - port_s
        - default_port
        - s
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dns_resolve
        - parse_sockaddr_components
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:440,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:441,35'
              BranchSideFuncs:
                - parse_sockaddr_components
                - free
            - BranchSide:      'lib/socket-util.c:446,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/socket-util.c:439,5'
          Dst:             dns_resolve
        - Src:             'lib/socket-util.c:441,9'
          Dst:             parse_sockaddr_components
    - functionName:    parse_sockaddr_components
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 455
      functionLinenumberEnd: 523
      functionDepth:   0
      returnType:      bool
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - ss
        - host_s
        - port_s
        - default_port
        - s
        - resolve_host
        - dns_failure
      BBCount:         73
      ICount:          369
      EdgeCount:       96
      CyclomaticComplexity: 25
      functionsReached:
        - __errno_location
        - atoi
        - htons
        - if_nametoindex
        - ip_parse
        - ipv6_parse
        - ovs_strerror
        - parse_sockaddr_components_dns
        - sa_cast
        - sin6_cast
        - sin_cast
        - str_to_int
        - strchr
        - strsep
        - strspn
        - vlog
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:459,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:460,10'
              BranchSideFuncs:
                - htons
                - ip_parse
                - vlog
                - parse_sockaddr_components_dns
                - strchr
                - sa_cast
                - sin6_cast
                - strsep
                - htons
                - ipv6_parse
                - strsep
                - strspn
                - atoi
                - if_nametoindex
                - __errno_location
                - ovs_strerror
                - vlog
                - str_to_int
                - vlog
            - BranchSide:      'lib/socket-util.c:463,9'
              BranchSideFuncs:
                - htons
                - ip_parse
                - vlog
                - parse_sockaddr_components_dns
                - strchr
                - sa_cast
                - sin6_cast
                - strsep
                - htons
                - ipv6_parse
                - strsep
                - strspn
                - atoi
                - if_nametoindex
                - __errno_location
                - ovs_strerror
                - vlog
                - str_to_int
                - vlog
        - Branch String:   'lib/socket-util.c:463,16'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:463,19'
              BranchSideFuncs:
                - htons
                - ip_parse
                - vlog
                - parse_sockaddr_components_dns
                - strchr
                - sa_cast
                - sin6_cast
                - strsep
                - htons
                - ipv6_parse
                - strsep
                - strspn
                - atoi
                - if_nametoindex
                - __errno_location
                - ovs_strerror
                - vlog
                - str_to_int
                - vlog
            - BranchSide:      'lib/socket-util.c:469,16'
              BranchSideFuncs:
                - htons
                - ip_parse
                - vlog
                - parse_sockaddr_components_dns
                - strchr
                - sa_cast
                - sin6_cast
                - strsep
                - htons
                - ipv6_parse
                - strsep
                - strspn
                - atoi
                - if_nametoindex
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:463,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:464,25'
              BranchSideFuncs:
                - str_to_int
                - vlog
                - htons
                - ip_parse
                - vlog
                - parse_sockaddr_components_dns
                - strchr
                - sa_cast
                - sin6_cast
                - strsep
                - htons
                - ipv6_parse
                - strsep
                - strspn
                - atoi
                - if_nametoindex
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:469,16'
              BranchSideFuncs:
                - htons
                - ip_parse
                - vlog
                - parse_sockaddr_components_dns
                - strchr
                - sa_cast
                - sin6_cast
                - strsep
                - htons
                - ipv6_parse
                - strsep
                - strspn
                - atoi
                - if_nametoindex
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:464,44'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:464,47'
              BranchSideFuncs:
                - htons
                - ip_parse
                - vlog
                - parse_sockaddr_components_dns
                - strchr
                - sa_cast
                - sin6_cast
                - strsep
                - htons
                - ipv6_parse
                - strsep
                - strspn
                - atoi
                - if_nametoindex
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog
            - BranchSide:      'lib/socket-util.c:465,13'
              BranchSideFuncs:
                - vlog
        - Branch String:   'lib/socket-util.c:464,56'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:464,59'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/socket-util.c:465,13'
              BranchSideFuncs:
                - vlog
        - Branch String:   'lib/socket-util.c:464,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:465,13'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/socket-util.c:468,5'
              BranchSideFuncs:
                - htons
                - ip_parse
                - vlog
                - parse_sockaddr_components_dns
                - strchr
                - sa_cast
                - sin6_cast
                - strsep
                - htons
                - ipv6_parse
                - strsep
                - strspn
                - atoi
                - if_nametoindex
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:465,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:465,13'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/socket-util.c:466,13'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:473,16'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:473,26'
              BranchSideFuncs:
                - strchr
                - htons
                - ip_parse
                - vlog
                - parse_sockaddr_components_dns
                - sa_cast
                - sin6_cast
                - strsep
                - htons
                - ipv6_parse
                - strsep
                - strspn
                - atoi
                - if_nametoindex
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:499,9'
              BranchSideFuncs:
                - htons
                - ip_parse
                - vlog
                - parse_sockaddr_components_dns
        - Branch String:   'lib/socket-util.c:473,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:474,55'
              BranchSideFuncs:
                - sa_cast
                - sin6_cast
                - strsep
                - htons
                - ipv6_parse
                - strsep
                - strspn
                - atoi
                - if_nametoindex
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:499,9'
              BranchSideFuncs:
                - htons
                - ip_parse
                - vlog
                - parse_sockaddr_components_dns
        - Branch String:   'lib/socket-util.c:479,19'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:479,24'
              BranchSideFuncs:
                - ipv6_parse
                - strsep
                - strspn
                - atoi
                - if_nametoindex
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:480,13'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:479,29'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:479,44'
              BranchSideFuncs:
                - ipv6_parse
                - strsep
                - strspn
                - atoi
                - if_nametoindex
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:480,13'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:479,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:480,13'
              BranchSideFuncs:
                - strsep
                - strspn
                - atoi
                - if_nametoindex
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:484,23'
              BranchSideFuncs:
                - strsep
                - strspn
                - atoi
                - if_nametoindex
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:485,19'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:485,23'
              BranchSideFuncs:
                - strspn
                - atoi
                - if_nametoindex
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:498,5'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:485,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:486,18'
              BranchSideFuncs:
                - strspn
                - atoi
                - if_nametoindex
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:498,5'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:486,17'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:487,44'
              BranchSideFuncs:
                - if_nametoindex
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:489,54'
              BranchSideFuncs:
                - if_nametoindex
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:490,21'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:0,0'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:491,21'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:491,21'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:491,21'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:493,21'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:509,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:510,43'
              BranchSideFuncs:
                - parse_sockaddr_components_dns
            - BranchSide:      'lib/socket-util.c:518,9'
              BranchSideFuncs:
                - vlog
        - Branch String:   'lib/socket-util.c:510,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:512,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:514,13'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:514,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:515,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:517,5'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:518,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:0,0'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/socket-util.c:518,9'
              BranchSideFuncs:
                - vlog
      Callsites:
        - Src:             'lib/socket-util.c:456,40'
          Dst:             sa_cast
        - Src:             'lib/socket-util.c:456,31'
          Dst:             sin_cast
        - Src:             'lib/socket-util.c:464,14'
          Dst:             str_to_int
        - Src:             'lib/socket-util.c:465,13'
          Dst:             vlog
        - Src:             'lib/socket-util.c:473,19'
          Dst:             strchr
        - Src:             'lib/socket-util.c:474,47'
          Dst:             sa_cast
        - Src:             'lib/socket-util.c:474,37'
          Dst:             sin6_cast
        - Src:             'lib/socket-util.c:475,22'
          Dst:             strsep
        - Src:             'lib/socket-util.c:478,27'
          Dst:             htons
        - Src:             'lib/socket-util.c:479,33'
          Dst:             ipv6_parse
        - Src:             'lib/socket-util.c:484,23'
          Dst:             strsep
        - Src:             'lib/socket-util.c:486,24'
          Dst:             strspn
        - Src:             'lib/socket-util.c:487,39'
          Dst:             atoi
        - Src:             'lib/socket-util.c:489,39'
          Dst:             if_nametoindex
        - Src:             'lib/socket-util.c:491,21'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:491,21'
          Dst:             ovs_strerror
        - Src:             'lib/socket-util.c:491,21'
          Dst:             vlog
        - Src:             'lib/socket-util.c:500,25'
          Dst:             htons
        - Src:             'lib/socket-util.c:501,24'
          Dst:             ip_parse
        - Src:             'lib/socket-util.c:510,13'
          Dst:             parse_sockaddr_components_dns
        - Src:             'lib/socket-util.c:518,9'
          Dst:             vlog
    - functionName:    sa_cast
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1217
      functionLinenumberEnd: 1218
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ss
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sin_cast
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1093
      functionLinenumberEnd: 1094
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - sa
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sin6_cast
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1099
      functionLinenumberEnd: 1100
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - sa
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strsep
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    htons
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    56
      BranchProfiles:  []
      Callsites:       []
    - functionName:    atoi
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    if_nametoindex
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    emulate_recvmmsg
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1318
      functionLinenumberEnd: 1336
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - fd
        - msgs
        - n
        - flags
        - timeout
      BBCount:         16
      ICount:          122
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - recvmsg
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:1324,5'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1325,34'
              BranchSideFuncs:
                - recvmsg
            - BranchSide:      'lib/socket-util.c:1335,12'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:1326,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1327,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:1329,27'
              BranchSideFuncs:
                - recvmsg
        - Branch String:   'lib/socket-util.c:1327,20'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1327,24'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:1327,28'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:1331,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1332,19'
              BranchSideFuncs:
                - recvmsg
            - BranchSide:      'lib/socket-util.c:1334,5'
              BranchSideFuncs:
                - recvmsg
      Callsites:
        - Src:             'lib/socket-util.c:1325,26'
          Dst:             recvmsg
    - functionName:    recvmsg
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    wrap_recvmmsg
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1352
      functionLinenumberEnd: 1366
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - fd
        - msgs
        - n
        - flags
        - timeout
      BBCount:         12
      ICount:          89
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - emulate_recvmmsg
        - recvmmsg
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:1356,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1357,26'
              BranchSideFuncs:
                - emulate_recvmmsg
            - BranchSide:      'lib/socket-util.c:1365,29'
              BranchSideFuncs:
                - emulate_recvmmsg
        - Branch String:   'lib/socket-util.c:1359,25'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1359,28'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:1360,20'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:1359,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1360,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:1362,25'
              BranchSideFuncs:
                - __errno_location
                - emulate_recvmmsg
      Callsites:
        - Src:             'lib/socket-util.c:1357,26'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:1358,22'
          Dst:             recvmmsg
        - Src:             'lib/socket-util.c:1359,28'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:1363,9'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:1365,12'
          Dst:             emulate_recvmmsg
    - functionName:    recvmmsg
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    emulate_sendmmsg
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1277
      functionLinenumberEnd: 1286
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - fd
        - msgs
        - n
        - flags
      BBCount:         13
      ICount:          90
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - sendmsg
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:1278,5'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1279,34'
              BranchSideFuncs:
                - sendmsg
            - BranchSide:      'lib/socket-util.c:1285,12'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:1280,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1281,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:1283,27'
              BranchSideFuncs:
                - sendmsg
        - Branch String:   'lib/socket-util.c:1281,20'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1281,24'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:1281,28'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/socket-util.c:1279,26'
          Dst:             sendmsg
    - functionName:    sendmsg
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    wrap_sendmmsg
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1300
      functionLinenumberEnd: 1312
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - fd
        - msgs
        - n
        - flags
      BBCount:         12
      ICount:          80
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - emulate_sendmmsg
        - sendmmsg
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:1302,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1303,26'
              BranchSideFuncs:
                - emulate_sendmmsg
            - BranchSide:      'lib/socket-util.c:1311,29'
              BranchSideFuncs:
                - emulate_sendmmsg
        - Branch String:   'lib/socket-util.c:1305,25'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1305,28'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:1306,20'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:1305,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1306,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:1308,25'
              BranchSideFuncs:
                - __errno_location
                - emulate_sendmmsg
      Callsites:
        - Src:             'lib/socket-util.c:1303,26'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:1304,22'
          Dst:             sendmmsg
        - Src:             'lib/socket-util.c:1305,28'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:1309,9'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:1311,12'
          Dst:             emulate_sendmmsg
    - functionName:    sendmmsg
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ss_format_address_nobracks
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1247
      functionLinenumberEnd: 1249
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ss
        - s
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sa_cast
        - sa_format_address_nobracks
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1248,32'
          Dst:             sa_cast
        - Src:             'lib/socket-util.c:1248,5'
          Dst:             sa_format_address_nobracks
    - functionName:    sa_format_address_nobracks
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1194
      functionLinenumberEnd: 1196
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sa
        - s
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sa_format_address__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1195,5'
          Dst:             sa_format_address__
    - functionName:    sa_format_address__
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1151
      functionLinenumberEnd: 1180
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sa
        - lbrack
        - rbrack
        - s
      BBCount:         15
      ICount:          159
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - ds_put_char
        - ds_put_cstr
        - ds_put_format
        - ds_reserve
        - if_indextoname
        - inet_ntop
        - is_safe_name
        - ntohl
        - sa_is_ip
        - sin6_cast
        - sin_cast
        - strlen
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:1153,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1154,23'
              BranchSideFuncs:
                - sin_cast
                - ntohl
                - sin_cast
                - ntohl
                - sin_cast
                - ntohl
                - sin_cast
                - ntohl
                - ds_put_format
            - BranchSide:      'lib/socket-util.c:1156,53'
              BranchSideFuncs:
                - sin6_cast
                - ds_put_cstr
                - ds_reserve
                - inet_ntop
                - strlen
                - ds_put_cstr
                - if_indextoname
                - ds_put_char.1413
                - ds_put_format
                - is_safe_name
                - ds_put_cstr
        - Branch String:   'lib/socket-util.c:1166,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1168,41'
              BranchSideFuncs:
                - if_indextoname
                - ds_put_char.1413
                - ds_put_format
                - ds_put_cstr
                - is_safe_name
                - ds_put_cstr
            - BranchSide:      'lib/socket-util.c:1178,21'
              BranchSideFuncs:
                - ds_put_cstr
        - Branch String:   'lib/socket-util.c:1170,22'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1170,38'
              BranchSideFuncs:
                - is_safe_name
                - ds_put_format
                - ds_put_cstr
                - ds_put_cstr
            - BranchSide:      'lib/socket-util.c:1173,31'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_cstr
        - Branch String:   'lib/socket-util.c:1170,17'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1171,29'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
            - BranchSide:      'lib/socket-util.c:1173,31'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_cstr
      Callsites:
        - Src:             'lib/socket-util.c:1152,5'
          Dst:             sa_is_ip
        - Src:             'lib/socket-util.c:1154,34'
          Dst:             sin_cast
        - Src:             'lib/socket-util.c:1154,34'
          Dst:             ntohl
        - Src:             'lib/socket-util.c:1154,34'
          Dst:             sin_cast
        - Src:             'lib/socket-util.c:1154,34'
          Dst:             ntohl
        - Src:             'lib/socket-util.c:1154,34'
          Dst:             sin_cast
        - Src:             'lib/socket-util.c:1154,34'
          Dst:             ntohl
        - Src:             'lib/socket-util.c:1154,34'
          Dst:             sin_cast
        - Src:             'lib/socket-util.c:1154,34'
          Dst:             ntohl
        - Src:             'lib/socket-util.c:1154,9'
          Dst:             ds_put_format
        - Src:             'lib/socket-util.c:1156,43'
          Dst:             sin6_cast
        - Src:             'lib/socket-util.c:1158,9'
          Dst:             ds_put_cstr
        - Src:             'lib/socket-util.c:1159,9'
          Dst:             ds_reserve
        - Src:             'lib/socket-util.c:1161,9'
          Dst:             inet_ntop
        - Src:             'lib/socket-util.c:1162,22'
          Dst:             strlen
        - Src:             'lib/socket-util.c:1168,26'
          Dst:             if_indextoname
        - Src:             'lib/socket-util.c:1169,13'
          Dst:             ds_put_char
        - Src:             'lib/socket-util.c:1170,25'
          Dst:             is_safe_name
        - Src:             'lib/socket-util.c:1171,17'
          Dst:             ds_put_cstr
        - Src:             'lib/socket-util.c:1173,17'
          Dst:             ds_put_format
        - Src:             'lib/socket-util.c:1178,9'
          Dst:             ds_put_cstr
    - functionName:    sa_is_ip
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1106
      functionLinenumberEnd: 1107
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - sa
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:1107,37'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1107,37'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:1107,40'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ntohl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    19
      BranchProfiles:  []
      Callsites:       []
    - functionName:    inet_ntop
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    if_indextoname
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ss_format_address
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1241
      functionLinenumberEnd: 1243
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ss
        - s
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sa_cast
        - sa_format_address
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1242,23'
          Dst:             sa_cast
        - Src:             'lib/socket-util.c:1242,5'
          Dst:             sa_format_address
    - functionName:    sa_format_address
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1186
      functionLinenumberEnd: 1188
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sa
        - s
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sa_format_address__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1187,5'
          Dst:             sa_format_address__
    - functionName:    ss_get_address
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1235
      functionLinenumberEnd: 1236
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ss
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sa_cast
        - sa_get_address
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1236,27'
          Dst:             sa_cast
        - Src:             'lib/socket-util.c:1236,12'
          Dst:             sa_get_address
    - functionName:    sa_get_address
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1114
      functionLinenumberEnd: 1118
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - sa
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - in6_addr_mapped_ipv4
        - sa_is_ip
        - sin6_cast
        - sin_cast
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:1116,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1117,45'
              BranchSideFuncs:
                - sin_cast
                - in6_addr_mapped_ipv4
            - BranchSide:      'lib/socket-util.c:1118,25'
              BranchSideFuncs:
                - sin6_cast
      Callsites:
        - Src:             'lib/socket-util.c:1115,5'
          Dst:             sa_is_ip
        - Src:             'lib/socket-util.c:1117,36'
          Dst:             sin_cast
        - Src:             'lib/socket-util.c:1117,15'
          Dst:             in6_addr_mapped_ipv4
        - Src:             'lib/socket-util.c:1118,15'
          Dst:             sin6_cast
    - functionName:    in6_addr_mapped_ipv4
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1208
      functionLinenumberEnd: 1213
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ip4
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ss_is_ip
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1223
      functionLinenumberEnd: 1224
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ss
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sa_cast
        - sa_is_ip
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1224,21'
          Dst:             sa_cast
        - Src:             'lib/socket-util.c:1224,12'
          Dst:             sa_is_ip
    - functionName:    sa_length
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1200
      functionLinenumberEnd: 1211
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - sa
      BBCount:         7
      ICount:          38
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached:
        - abort
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:1201,5'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1203,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:1206,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:1209,9'
              BranchSideFuncs:
                - abort
      Callsites:
        - Src:             'lib/socket-util.c:1209,9'
          Dst:             abort
    - functionName:    sa_get_port
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1124
      functionLinenumberEnd: 1128
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - sa
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ntohs
        - sa_is_ip
        - sin6_cast
        - sin_cast
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:1126,18'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1127,29'
              BranchSideFuncs:
                - sin_cast
                - ntohs
            - BranchSide:      'lib/socket-util.c:1128,30'
              BranchSideFuncs:
                - sin6_cast
                - ntohs
      Callsites:
        - Src:             'lib/socket-util.c:1125,5'
          Dst:             sa_is_ip
        - Src:             'lib/socket-util.c:1127,20'
          Dst:             sin_cast
        - Src:             'lib/socket-util.c:1128,20'
          Dst:             sin6_cast
        - Src:             'lib/socket-util.c:1126,12'
          Dst:             ntohs
    - functionName:    ntohs
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    put_fd_filename
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1037
      functionLinenumberEnd: 1052
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - string
        - fd
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ds_put_buffer
        - ds_put_char
        - ds_put_cstr
        - readlink
        - xasprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:1044,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1044,9'
              BranchSideFuncs:
                - ds_put_char.1413
                - ds_put_buffer
                - free
                - ds_put_cstr
            - BranchSide:      'lib/socket-util.c:1045,21'
              BranchSideFuncs:
                - ds_put_char.1413
                - ds_put_buffer
                - free
                - ds_put_cstr
        - Branch String:   'lib/socket-util.c:1047,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1048,25'
              BranchSideFuncs:
                - ds_put_cstr
                - free
            - BranchSide:      'lib/socket-util.c:1050,5'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'lib/socket-util.c:1042,16'
          Dst:             xasprintf
        - Src:             'lib/socket-util.c:1043,9'
          Dst:             readlink
        - Src:             'lib/socket-util.c:1045,9'
          Dst:             ds_put_char
        - Src:             'lib/socket-util.c:1046,9'
          Dst:             ds_put_buffer
        - Src:             'lib/socket-util.c:1048,13'
          Dst:             ds_put_cstr
    - functionName:    readlink
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    describe_sockaddr
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 953
      functionLinenumberEnd: 1031
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - string
        - fd
        - getaddr
      BBCount:         43
      ICount:          244
      EdgeCount:       54
      CyclomaticComplexity: 13
      functionsReached:
        - ds_put_buffer
        - ds_put_cstr
        - ds_put_format
        - getsockopt_int
        - if_indextoname
        - memchr
        - ntohs
        - ss_format_address
        - ss_get_port
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:957,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:957,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:958,16'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_cstr
                - ds_put_cstr
                - ntohs
                - ds_put_format
                - if_indextoname
                - ds_put_format
                - ds_put_format
                - getsockopt_int
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - memchr
                - ds_put_buffer
                - ss_format_address
                - ss_get_port
                - ds_put_format
        - Branch String:   'lib/socket-util.c:958,37'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:958,43'
              BranchSideFuncs:
                - ss_format_address
                - ss_get_port
                - ds_put_format
            - BranchSide:      'lib/socket-util.c:959,36'
              BranchSideFuncs:
                - ss_format_address
                - ss_get_port
                - ds_put_format
        - Branch String:   'lib/socket-util.c:958,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:959,36'
              BranchSideFuncs:
                - ss_format_address
                - ss_get_port
                - ds_put_format
            - BranchSide:      'lib/socket-util.c:962,23'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_cstr
                - ds_put_cstr
                - ntohs
                - ds_put_format
                - if_indextoname
                - ds_put_format
                - ds_put_format
                - getsockopt_int
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - memchr
                - ds_put_buffer
        - Branch String:   'lib/socket-util.c:962,20'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:967,13'
              BranchSideFuncs:
                - memchr
                - ds_put_buffer
            - BranchSide:      'lib/socket-util.c:975,21'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_cstr
                - ds_put_cstr
                - ntohs
                - ds_put_format
                - if_indextoname
                - ds_put_format
                - ds_put_format
                - getsockopt_int
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
        - Branch String:   'lib/socket-util.c:971,27'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:971,34'
              BranchSideFuncs:
                - ds_put_buffer
            - BranchSide:      'lib/socket-util.c:971,56'
              BranchSideFuncs:
                - ds_put_buffer
        - Branch String:   'lib/socket-util.c:975,18'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:984,33'
              BranchSideFuncs:
                - getsockopt_int
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
            - BranchSide:      'lib/socket-util.c:1005,21'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_cstr
                - ds_put_cstr
                - ntohs
                - ds_put_format
                - if_indextoname
                - ds_put_format
                - ds_put_format
        - Branch String:   'lib/socket-util.c:984,17'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:986,25'
              BranchSideFuncs:
                - ds_put_cstr
            - BranchSide:      'lib/socket-util.c:1000,29'
              BranchSideFuncs:
                - ds_put_cstr
        - Branch String:   'lib/socket-util.c:986,17'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:988,33'
              BranchSideFuncs:
                - ds_put_cstr
            - BranchSide:      'lib/socket-util.c:992,33'
              BranchSideFuncs:
                - ds_put_cstr
            - BranchSide:      'lib/socket-util.c:996,35'
              BranchSideFuncs:
                - ds_put_format
        - Branch String:   'lib/socket-util.c:1005,18'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1008,13'
              BranchSideFuncs:
                - ds_put_cstr
                - ntohs
                - ds_put_format
                - if_indextoname
                - ds_put_format
                - ds_put_format
            - BranchSide:      'lib/socket-util.c:1025,21'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_cstr
        - Branch String:   'lib/socket-util.c:1010,17'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1013,40'
              BranchSideFuncs:
                - if_indextoname
                - ds_put_format
                - ntohs
                - ds_put_format
                - ds_put_format
            - BranchSide:      'lib/socket-util.c:1019,21'
              BranchSideFuncs:
                - ntohs
                - ds_put_format
        - Branch String:   'lib/socket-util.c:1013,21'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1014,35'
              BranchSideFuncs:
                - ds_put_format
                - ntohs
                - ds_put_format
            - BranchSide:      'lib/socket-util.c:1016,35'
              BranchSideFuncs:
                - ds_put_format
                - ntohs
                - ds_put_format
        - Branch String:   'lib/socket-util.c:1019,17'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1020,31'
              BranchSideFuncs:
                - ntohs
                - ds_put_format
            - BranchSide:      'lib/socket-util.c:1023,9'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:1025,18'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1026,25'
              BranchSideFuncs:
                - ds_put_cstr
            - BranchSide:      'lib/socket-util.c:1028,27'
              BranchSideFuncs:
                - ds_put_format
      Callsites:
        - Src:             'lib/socket-util.c:959,13'
          Dst:             ss_format_address
        - Src:             'lib/socket-util.c:960,47'
          Dst:             ss_get_port
        - Src:             'lib/socket-util.c:960,13'
          Dst:             ds_put_format
        - Src:             'lib/socket-util.c:969,20'
          Dst:             memchr
        - Src:             'lib/socket-util.c:970,13'
          Dst:             ds_put_buffer
        - Src:             'lib/socket-util.c:984,18'
          Dst:             getsockopt_int
        - Src:             'lib/socket-util.c:988,21'
          Dst:             ds_put_cstr
        - Src:             'lib/socket-util.c:992,21'
          Dst:             ds_put_cstr
        - Src:             'lib/socket-util.c:996,21'
          Dst:             ds_put_format
        - Src:             'lib/socket-util.c:1000,17'
          Dst:             ds_put_cstr
        - Src:             'lib/socket-util.c:1009,13'
          Dst:             ds_put_cstr
        - Src:             'lib/socket-util.c:1013,21'
          Dst:             if_indextoname
        - Src:             'lib/socket-util.c:1014,21'
          Dst:             ds_put_format
        - Src:             'lib/socket-util.c:1016,21'
          Dst:             ds_put_format
        - Src:             'lib/socket-util.c:1021,31'
          Dst:             ntohs
        - Src:             'lib/socket-util.c:1020,17'
          Dst:             ds_put_format
        - Src:             'lib/socket-util.c:1026,13'
          Dst:             ds_put_cstr
        - Src:             'lib/socket-util.c:1028,13'
          Dst:             ds_put_format
    - functionName:    ss_get_port
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1229
      functionLinenumberEnd: 1230
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ss
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sa_cast
        - sa_get_port
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1230,24'
          Dst:             sa_cast
        - Src:             'lib/socket-util.c:1230,12'
          Dst:             sa_get_port
    - functionName:    memchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getsockopt_int
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 928
      functionLinenumberEnd: 947
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - fd
        - level
        - option
        - optname
        - valuep
      BBCount:         22
      ICount:          124
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - getsockopt
        - sock_errno
        - sock_strerror
        - vlog_rate_limit
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:935,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:936,17'
              BranchSideFuncs:
                - sock_errno
                - sock_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/socket-util.c:938,16'
              BranchSideFuncs:
                - vlog_rate_limit
        - Branch String:   'lib/socket-util.c:937,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:937,9'
              BranchSideFuncs:
                - sock_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/socket-util.c:938,5'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:938,16'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:939,15'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/socket-util.c:943,15'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:940,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:940,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/socket-util.c:942,5'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:946,15'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:946,15'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:946,27'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/socket-util.c:935,9'
          Dst:             getsockopt
        - Src:             'lib/socket-util.c:936,17'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:937,9'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:937,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/socket-util.c:940,9'
          Dst:             vlog_rate_limit
    - functionName:    getsockopt
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sock_errno
      functionSourceFile: '/src/openvswitch/lib/socket-util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
      functionUses:    13
      BranchProfiles:
        - Branch String:   'lib/socket-util.h:182,12'
          Branch Sides:
            - BranchSide:      'lib/socket-util.h:182,12'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/socket-util.h:182,12'
              BranchSideFuncs:
                - __errno_location
      Callsites:
        - Src:             'lib/socket-util.h:182,12'
          Dst:             __errno_location
    - functionName:    sock_strerror
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1265
      functionLinenumberEnd: 1269
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - error
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1269,12'
          Dst:             ovs_strerror
    - functionName:    describe_fd
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1058
      functionLinenumberEnd: 1086
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - fd
      BBCount:         27
      ICount:          134
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - describe_sockaddr
        - ds_init
        - ds_put_cstr
        - ds_put_format
        - ds_steal_cstr
        - fstat
        - getpeername
        - getsockname
        - isatty
        - ovs_strerror
        - put_fd_filename
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:1064,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1065,66'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - ds_put_format
                - ds_steal_cstr
            - BranchSide:      'lib/socket-util.c:1066,16'
              BranchSideFuncs:
                - isatty
                - ds_put_cstr
                - put_fd_filename
                - ds_steal_cstr
                - describe_sockaddr
                - ds_put_cstr
                - describe_sockaddr
        - Branch String:   'lib/socket-util.c:1066,16'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1067,36'
              BranchSideFuncs:
                - describe_sockaddr
                - ds_put_cstr
                - describe_sockaddr
                - ds_steal_cstr
            - BranchSide:      'lib/socket-util.c:1071,38'
              BranchSideFuncs:
                - isatty
                - ds_put_cstr
                - put_fd_filename
                - ds_steal_cstr
        - Branch String:   'lib/socket-util.c:1071,31'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1071,9'
              BranchSideFuncs:
                - ds_put_cstr
                - put_fd_filename
                - ds_steal_cstr
            - BranchSide:      'lib/socket-util.c:1072,33'
              BranchSideFuncs:
                - ds_put_cstr
                - put_fd_filename
                - ds_steal_cstr
        - Branch String:   'lib/socket-util.c:1072,33'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1071,31'
              BranchSideFuncs:
                - ds_put_cstr
                - put_fd_filename
                - ds_steal_cstr
            - BranchSide:      'lib/socket-util.c:1073,33'
              BranchSideFuncs:
                - ds_put_cstr
                - put_fd_filename
                - ds_steal_cstr
        - Branch String:   'lib/socket-util.c:1073,33'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1072,33'
              BranchSideFuncs:
                - ds_put_cstr
                - put_fd_filename
                - ds_steal_cstr
            - BranchSide:      'lib/socket-util.c:1074,33'
              BranchSideFuncs:
                - ds_put_cstr
                - put_fd_filename
                - ds_steal_cstr
        - Branch String:   'lib/socket-util.c:1074,33'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1073,33'
              BranchSideFuncs:
                - ds_put_cstr
                - put_fd_filename
                - ds_steal_cstr
            - BranchSide:      'lib/socket-util.c:1075,33'
              BranchSideFuncs:
                - ds_put_cstr
                - put_fd_filename
                - ds_steal_cstr
        - Branch String:   'lib/socket-util.c:1075,33'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1074,33'
              BranchSideFuncs:
                - ds_put_cstr
                - put_fd_filename
                - ds_steal_cstr
            - BranchSide:      'lib/socket-util.c:1076,33'
              BranchSideFuncs:
                - ds_put_cstr
                - put_fd_filename
                - ds_steal_cstr
        - Branch String:   'lib/socket-util.c:1076,33'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:1075,33'
              BranchSideFuncs:
                - ds_put_cstr
                - put_fd_filename
                - ds_steal_cstr
            - BranchSide:      'lib/socket-util.c:1077,33'
              BranchSideFuncs:
                - ds_put_cstr
                - put_fd_filename
                - ds_steal_cstr
      Callsites:
        - Src:             'lib/socket-util.c:1062,5'
          Dst:             ds_init
        - Src:             'lib/socket-util.c:1064,9'
          Dst:             fstat
        - Src:             'lib/socket-util.c:1065,66'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:1065,53'
          Dst:             ovs_strerror
        - Src:             'lib/socket-util.c:1065,9'
          Dst:             ds_put_format
        - Src:             'lib/socket-util.c:1067,9'
          Dst:             describe_sockaddr
        - Src:             'lib/socket-util.c:1067,9'
          Dst:             getsockname
        - Src:             'lib/socket-util.c:1068,9'
          Dst:             ds_put_cstr
        - Src:             'lib/socket-util.c:1069,9'
          Dst:             describe_sockaddr
        - Src:             'lib/socket-util.c:1069,9'
          Dst:             getpeername
        - Src:             'lib/socket-util.c:1071,31'
          Dst:             isatty
        - Src:             'lib/socket-util.c:1071,9'
          Dst:             ds_put_cstr
        - Src:             'lib/socket-util.c:1080,9'
          Dst:             put_fd_filename
        - Src:             'lib/socket-util.c:1086,12'
          Dst:             ds_steal_cstr
    - functionName:    fstat
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getsockname
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getpeername
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    isatty
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_mtime
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 905
      functionLinenumberEnd: 924
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - file_name
        - mtime
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - stat
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:908,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:909,27'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/socket-util.c:921,25'
              BranchSideFuncs:
                - __errno_location
      Callsites:
        - Src:             'lib/socket-util.c:908,10'
          Dst:             stat
        - Src:             'lib/socket-util.c:922,16'
          Dst:             __errno_location
    - functionName:    stat
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fsync_parent_dir
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 870
      functionLinenumberEnd: 896
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - file_name
      BBCount:         25
      ICount:          126
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - close
        - dir_name
        - fsync
        - open
        - ovs_strerror
        - vlog
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:878,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:879,19'
              BranchSideFuncs:
                - fsync
                - close
                - free
                - __errno_location
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:890,17'
              BranchSideFuncs:
                - __errno_location
                - free
                - ovs_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:879,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:880,17'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - close
                - free
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:888,15'
              BranchSideFuncs:
                - close
                - free
        - Branch String:   'lib/socket-util.c:880,33'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:880,36'
              BranchSideFuncs:
                - close
                - free
            - BranchSide:      'lib/socket-util.c:883,13'
              BranchSideFuncs:
                - close
                - free
        - Branch String:   'lib/socket-util.c:880,17'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:883,13'
              BranchSideFuncs:
                - close
                - free
            - BranchSide:      'lib/socket-util.c:884,25'
              BranchSideFuncs:
                - __errno_location
                - close
                - free
                - ovs_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:885,17'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:0,0'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
                - close
                - free
            - BranchSide:      'lib/socket-util.c:885,17'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
                - close
                - free
        - Branch String:   'lib/socket-util.c:891,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:0,0'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
                - free
            - BranchSide:      'lib/socket-util.c:891,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
                - free
      Callsites:
        - Src:             'lib/socket-util.c:876,11'
          Dst:             dir_name
        - Src:             'lib/socket-util.c:877,10'
          Dst:             open
        - Src:             'lib/socket-util.c:879,13'
          Dst:             fsync
        - Src:             'lib/socket-util.c:880,17'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:880,36'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:884,25'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:885,17'
          Dst:             ovs_strerror
        - Src:             'lib/socket-util.c:885,17'
          Dst:             vlog
        - Src:             'lib/socket-util.c:888,9'
          Dst:             close
        - Src:             'lib/socket-util.c:890,17'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:891,9'
          Dst:             ovs_strerror
        - Src:             'lib/socket-util.c:891,9'
          Dst:             vlog
    - functionName:    open
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fsync
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    close
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    30
      BranchProfiles:  []
      Callsites:       []
    - functionName:    write_fully
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 846
      functionLinenumberEnd: 864
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - fd
        - p_
        - size
        - bytes_written
      BBCount:         20
      ICount:          116
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - vlog
        - write
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:850,5'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:851,32'
              BranchSideFuncs:
                - write
                - __errno_location
                - __errno_location
                - vlog
            - BranchSide:      'lib/socket-util.c:863,5'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:852,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:853,31'
              BranchSideFuncs:
                - write
                - __errno_location
                - __errno_location
                - vlog
            - BranchSide:      'lib/socket-util.c:856,20'
              BranchSideFuncs:
                - __errno_location
                - write
                - __errno_location
                - vlog
        - Branch String:   'lib/socket-util.c:856,20'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:857,13'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/socket-util.c:859,20'
              BranchSideFuncs:
                - __errno_location
                - write
                - vlog
                - __errno_location
        - Branch String:   'lib/socket-util.c:857,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:857,13'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/socket-util.c:858,13'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/socket-util.c:851,26'
          Dst:             write
        - Src:             'lib/socket-util.c:857,13'
          Dst:             vlog
        - Src:             'lib/socket-util.c:859,20'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:860,20'
          Dst:             __errno_location
    - functionName:    write
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    read_fully
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 825
      functionLinenumberEnd: 842
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - fd
        - p_
        - size
        - bytes_read
      BBCount:         15
      ICount:          96
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - read
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:829,5'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:830,31'
              BranchSideFuncs:
                - read
                - __errno_location
                - __errno_location
            - BranchSide:      'lib/socket-util.c:841,5'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:831,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:832,28'
              BranchSideFuncs:
                - read
                - __errno_location
                - __errno_location
            - BranchSide:      'lib/socket-util.c:835,20'
              BranchSideFuncs:
                - __errno_location
                - read
                - __errno_location
        - Branch String:   'lib/socket-util.c:835,20'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:836,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:837,20'
              BranchSideFuncs:
                - __errno_location
                - read
                - __errno_location
      Callsites:
        - Src:             'lib/socket-util.c:830,26'
          Dst:             read
        - Src:             'lib/socket-util.c:837,20'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:838,20'
          Dst:             __errno_location
    - functionName:    read
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unbracket
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strchr
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:350,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:350,9'
              BranchSideFuncs:
                - strchr
            - BranchSide:      'lib/socket-util.c:351,10'
              BranchSideFuncs:
                - strchr
        - Branch String:   'lib/socket-util.c:354,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:355,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:357,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/socket-util.c:353,21'
          Dst:             strchr
    - functionName:    inet_parse_address
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 811
      functionLinenumberEnd: 820
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - target_
        - ss
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - parse_sockaddr_components
        - unbracket
        - xstrdup
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:816,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:816,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/socket-util.c:817,16'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'lib/socket-util.c:812,20'
          Dst:             xstrdup
        - Src:             'lib/socket-util.c:813,18'
          Dst:             unbracket
        - Src:             'lib/socket-util.c:814,15'
          Dst:             parse_sockaddr_components
    - functionName:    inet_open_passive
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 718
      functionLinenumberEnd: 802
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - int
        - 'N/A'
        - int
        - 'N/A'
        - char
        - bool
      constantsTouched: []
      argNames:
        - style
        - target
        - default_port
        - ssp
        - dscp
        - kernel_print_port
      BBCount:         81
      ICount:          429
      EdgeCount:       105
      CyclomaticComplexity: 26
      functionsReached:
        - bind
        - close
        - getsockname
        - inet_parse_passive
        - listen
        - set_dscp
        - set_nonblocking
        - setsockopt
        - sock_errno
        - sock_strerror
        - socket
        - ss_get_port
        - ss_length
        - vlog
        - vlog_rate_limit
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:725,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:726,13'
              BranchSideFuncs:
                - ss_get_port
                - socket
                - set_nonblocking
                - ss_length
                - bind
                - set_dscp
                - getsockname
                - ss_get_port
                - vlog
                - sock_errno
                - close
                - sock_strerror
                - vlog
                - listen
                - sock_errno
                - sock_strerror
                - vlog
                - sock_strerror
                - vlog
                - sock_errno
                - sock_strerror
                - vlog_rate_limit
                - setsockopt
                - sock_errno
                - sock_strerror
                - vlog
                - sock_errno
                - sock_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:733,27'
              BranchSideFuncs:
                - ss_get_port
                - socket
                - set_nonblocking
                - ss_length
                - bind
                - set_dscp
                - getsockname
                - ss_get_port
                - vlog
                - sock_errno
                - close
                - sock_strerror
                - vlog
                - listen
                - sock_errno
                - sock_strerror
                - vlog
                - sock_strerror
                - vlog
                - sock_errno
                - sock_strerror
                - vlog_rate_limit
                - setsockopt
                - sock_errno
                - sock_strerror
                - vlog
                - sock_errno
                - sock_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:726,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:729,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:731,9'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:737,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:738,17'
              BranchSideFuncs:
                - sock_errno
                - sock_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:742,29'
              BranchSideFuncs:
                - set_nonblocking
                - ss_length
                - bind
                - set_dscp
                - getsockname
                - ss_get_port
                - vlog
                - sock_errno
                - close
                - sock_strerror
                - vlog
                - listen
                - sock_errno
                - sock_strerror
                - vlog
                - sock_strerror
                - vlog
                - sock_errno
                - sock_strerror
                - vlog_rate_limit
                - setsockopt
                - sock_errno
                - sock_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:739,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:739,9'
              BranchSideFuncs:
                - sock_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:740,17'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:743,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:744,9'
              BranchSideFuncs:
                - close
            - BranchSide:      'lib/socket-util.c:746,9'
              BranchSideFuncs:
                - ss_length
                - bind
                - set_dscp
                - getsockname
                - ss_get_port
                - vlog
                - sock_errno
                - close
                - sock_strerror
                - vlog
                - listen
                - sock_errno
                - sock_strerror
                - vlog
                - sock_strerror
                - vlog
                - sock_errno
                - sock_strerror
                - vlog_rate_limit
                - setsockopt
                - sock_errno
                - sock_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:747,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:747,23'
              BranchSideFuncs:
                - setsockopt
                - ss_length
                - bind
                - set_dscp
                - getsockname
                - ss_get_port
                - vlog
                - sock_errno
                - close
                - sock_strerror
                - vlog
                - listen
                - sock_errno
                - sock_strerror
                - vlog
                - sock_strerror
                - vlog
                - sock_errno
                - sock_strerror
                - vlog_rate_limit
                - sock_errno
                - sock_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:755,14'
              BranchSideFuncs:
                - ss_length
                - bind
                - set_dscp
                - getsockname
                - ss_get_port
                - vlog
                - sock_errno
                - close
                - sock_strerror
                - vlog
                - listen
                - sock_errno
                - sock_strerror
                - vlog
                - sock_strerror
                - vlog
                - sock_errno
                - sock_strerror
                - vlog_rate_limit
        - Branch String:   'lib/socket-util.c:746,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:748,17'
              BranchSideFuncs:
                - sock_errno
                - close
                - sock_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:755,14'
              BranchSideFuncs:
                - ss_length
                - bind
                - set_dscp
                - getsockname
                - ss_get_port
                - vlog
                - sock_errno
                - close
                - sock_strerror
                - vlog
                - listen
                - sock_errno
                - sock_strerror
                - vlog
                - sock_strerror
                - vlog
                - sock_errno
                - sock_strerror
                - vlog_rate_limit
        - Branch String:   'lib/socket-util.c:749,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:749,9'
              BranchSideFuncs:
                - sock_strerror
                - vlog
                - close
            - BranchSide:      'lib/socket-util.c:751,9'
              BranchSideFuncs:
                - close
        - Branch String:   'lib/socket-util.c:755,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:756,17'
              BranchSideFuncs:
                - sock_errno
                - close
                - sock_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/socket-util.c:765,22'
              BranchSideFuncs:
                - set_dscp
                - getsockname
                - ss_get_port
                - vlog
                - sock_errno
                - close
                - sock_strerror
                - vlog
                - listen
                - sock_errno
                - sock_strerror
                - vlog
                - sock_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:758,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:758,9'
              BranchSideFuncs:
                - sock_strerror
                - vlog_rate_limit
                - close
            - BranchSide:      'lib/socket-util.c:759,9'
              BranchSideFuncs:
                - close
        - Branch String:   'lib/socket-util.c:766,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:767,9'
              BranchSideFuncs:
                - close
                - sock_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:772,9'
              BranchSideFuncs:
                - getsockname
                - ss_get_port
                - vlog
                - sock_errno
                - close
                - sock_strerror
                - vlog
                - listen
                - sock_errno
                - sock_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:767,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:767,9'
              BranchSideFuncs:
                - sock_strerror
                - vlog
                - close
            - BranchSide:      'lib/socket-util.c:768,9'
              BranchSideFuncs:
                - close
        - Branch String:   'lib/socket-util.c:772,30'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:772,40'
              BranchSideFuncs:
                - listen
                - getsockname
                - ss_get_port
                - vlog
                - sock_errno
                - close
                - sock_strerror
                - vlog
                - sock_errno
                - sock_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:778,9'
              BranchSideFuncs:
                - getsockname
                - ss_get_port
                - vlog
                - sock_errno
                - close
                - sock_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:772,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:773,17'
              BranchSideFuncs:
                - sock_errno
                - close
                - sock_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:778,9'
              BranchSideFuncs:
                - getsockname
                - ss_get_port
                - vlog
                - sock_errno
                - close
                - sock_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:774,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:774,9'
              BranchSideFuncs:
                - sock_strerror
                - vlog
                - close
            - BranchSide:      'lib/socket-util.c:775,9'
              BranchSideFuncs:
                - close
        - Branch String:   'lib/socket-util.c:778,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:778,16'
              BranchSideFuncs:
                - getsockname
                - ss_get_port
                - vlog
                - sock_errno
                - close
                - sock_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:779,19'
              BranchSideFuncs:
                - getsockname
                - ss_get_port
                - vlog
                - sock_errno
                - close
                - sock_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:778,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:779,19'
              BranchSideFuncs:
                - getsockname
                - ss_get_port
                - vlog
                - sock_errno
                - close
                - sock_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:794,12'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:780,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:781,21'
              BranchSideFuncs:
                - sock_errno
                - close
                - sock_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:785,13'
              BranchSideFuncs:
                - ss_get_port
                - vlog
        - Branch String:   'lib/socket-util.c:782,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:782,13'
              BranchSideFuncs:
                - sock_strerror
                - vlog
                - close
            - BranchSide:      'lib/socket-util.c:783,13'
              BranchSideFuncs:
                - close
        - Branch String:   'lib/socket-util.c:785,33'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:785,36'
              BranchSideFuncs:
                - ss_get_port
                - vlog
            - BranchSide:      'lib/socket-util.c:789,13'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:785,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:786,13'
              BranchSideFuncs:
                - ss_get_port
                - vlog
            - BranchSide:      'lib/socket-util.c:789,13'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:786,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:786,13'
              BranchSideFuncs:
                - ss_get_port
                - vlog
            - BranchSide:      'lib/socket-util.c:788,9'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:789,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:790,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:792,5'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:797,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:798,16'
              BranchSideFuncs:
                - close
            - BranchSide:      'lib/socket-util.c:800,17'
              BranchSideFuncs:
                - close
      Callsites:
        - Src:             'lib/socket-util.c:725,10'
          Dst:             inet_parse_passive
        - Src:             'lib/socket-util.c:733,27'
          Dst:             ss_get_port
        - Src:             'lib/socket-util.c:736,10'
          Dst:             socket
        - Src:             'lib/socket-util.c:738,17'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:739,9'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:739,9'
          Dst:             vlog
        - Src:             'lib/socket-util.c:742,13'
          Dst:             set_nonblocking
        - Src:             'lib/socket-util.c:747,12'
          Dst:             setsockopt
        - Src:             'lib/socket-util.c:748,17'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:749,9'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:749,9'
          Dst:             vlog
        - Src:             'lib/socket-util.c:755,43'
          Dst:             ss_length
        - Src:             'lib/socket-util.c:755,9'
          Dst:             bind
        - Src:             'lib/socket-util.c:756,17'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:758,9'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:758,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/socket-util.c:765,13'
          Dst:             set_dscp
        - Src:             'lib/socket-util.c:767,9'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:767,9'
          Dst:             vlog
        - Src:             'lib/socket-util.c:772,33'
          Dst:             listen
        - Src:             'lib/socket-util.c:773,17'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:774,9'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:774,9'
          Dst:             vlog
        - Src:             'lib/socket-util.c:780,13'
          Dst:             getsockname
        - Src:             'lib/socket-util.c:781,21'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:782,13'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:782,13'
          Dst:             vlog
        - Src:             'lib/socket-util.c:786,13'
          Dst:             ss_get_port
        - Src:             'lib/socket-util.c:786,13'
          Dst:             vlog
        - Src:             'lib/socket-util.c:800,5'
          Dst:             close
    - functionName:    inet_parse_passive
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 671
      functionLinenumberEnd: 691
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - target_
        - default_port
        - ss
        - resolve_host
        - dns_failure
      BBCount:         20
      ICount:          121
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - inet_parse_port_host_tokens
        - parse_sockaddr_components
        - vlog
        - xstrdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:677,15'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:677,18'
              BranchSideFuncs:
                - parse_sockaddr_components
                - free
            - BranchSide:      'lib/socket-util.c:684,40'
              BranchSideFuncs:
                - parse_sockaddr_components
                - free
        - Branch String:   'lib/socket-util.c:677,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:678,9'
              BranchSideFuncs:
                - free
                - vlog
            - BranchSide:      'lib/socket-util.c:684,40'
              BranchSideFuncs:
                - parse_sockaddr_components
                - free
        - Branch String:   'lib/socket-util.c:678,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:678,9'
              BranchSideFuncs:
                - vlog
                - free
            - BranchSide:      'lib/socket-util.c:679,12'
              BranchSideFuncs:
                - free
        - Branch String:   'lib/socket-util.c:680,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:681,14'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/socket-util.c:683,5'
              BranchSideFuncs:
                - free
        - Branch String:   'lib/socket-util.c:687,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:687,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/socket-util.c:688,16'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'lib/socket-util.c:672,20'
          Dst:             xstrdup
        - Src:             'lib/socket-util.c:676,5'
          Dst:             inet_parse_port_host_tokens
        - Src:             'lib/socket-util.c:678,9'
          Dst:             vlog
        - Src:             'lib/socket-util.c:684,14'
          Dst:             parse_sockaddr_components
    - functionName:    socket
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_nonblocking
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - fd
      BBCount:         18
      ICount:          97
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - fcntl
        - ovs_strerror
        - vlog
      functionUses:    6
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:75,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:76,19'
              BranchSideFuncs:
                - fcntl
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:83,9'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:76,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:77,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:79,13'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:79,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:79,13'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
            - BranchSide:      'lib/socket-util.c:80,20'
              BranchSideFuncs:
                - __errno_location
        - Branch String:   'lib/socket-util.c:83,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:83,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
            - BranchSide:      'lib/socket-util.c:84,16'
              BranchSideFuncs:
                - __errno_location
      Callsites:
        - Src:             'lib/socket-util.c:74,17'
          Dst:             fcntl
        - Src:             'lib/socket-util.c:76,13'
          Dst:             fcntl
        - Src:             'lib/socket-util.c:79,13'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:79,13'
          Dst:             ovs_strerror
        - Src:             'lib/socket-util.c:79,13'
          Dst:             vlog
        - Src:             'lib/socket-util.c:80,20'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:83,9'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:83,9'
          Dst:             ovs_strerror
        - Src:             'lib/socket-util.c:83,9'
          Dst:             vlog
        - Src:             'lib/socket-util.c:84,16'
          Dst:             __errno_location
    - functionName:    setsockopt
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ss_length
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1253
      functionLinenumberEnd: 1254
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ss
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sa_cast
        - sa_length
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:1254,22'
          Dst:             sa_cast
        - Src:             'lib/socket-util.c:1254,12'
          Dst:             sa_length
    - functionName:    bind
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_dscp
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - char
      constantsTouched: []
      argNames:
        - fd
        - family
        - dscp
      BBCount:         13
      ICount:          79
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - setsockopt
        - sock_errno
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:132,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:133,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:135,11'
              BranchSideFuncs:
                - setsockopt
                - sock_errno
                - setsockopt
        - Branch String:   'lib/socket-util.c:137,5'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:139,29'
              BranchSideFuncs:
                - setsockopt
                - sock_errno
            - BranchSide:      'lib/socket-util.c:143,29'
              BranchSideFuncs:
                - setsockopt
                - sock_errno
            - BranchSide:      'lib/socket-util.c:147,9'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:150,12'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:150,21'
              BranchSideFuncs:
                - sock_errno
            - BranchSide:      'lib/socket-util.c:150,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/socket-util.c:139,18'
          Dst:             setsockopt
        - Src:             'lib/socket-util.c:143,18'
          Dst:             setsockopt
        - Src:             'lib/socket-util.c:150,21'
          Dst:             sock_errno
    - functionName:    listen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fcntl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    inet_parse_port_host_tokens
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 426
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - portp
        - hostp
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - inet_parse_tokens__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:427,5'
          Dst:             inet_parse_tokens__
    - functionName:    inet_parse_tokens__
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 364
      functionLinenumberEnd: 393
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - host_index
        - hostp
        - portp
      BBCount:         24
      ICount:          156
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - unbracket
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:368,5'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:369,14'
              BranchSideFuncs:
                - unbracket
                - unbracket
            - BranchSide:      'lib/socket-util.c:379,15'
              BranchSideFuncs:
                - unbracket
                - unbracket
        - Branch String:   'lib/socket-util.c:369,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:370,25'
              BranchSideFuncs:
                - unbracket
                - unbracket
            - BranchSide:      'lib/socket-util.c:371,21'
              BranchSideFuncs:
                - unbracket
                - unbracket
        - Branch String:   'lib/socket-util.c:371,20'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:372,25'
              BranchSideFuncs:
                - unbracket
                - unbracket
            - BranchSide:      'lib/socket-util.c:373,21'
              BranchSideFuncs:
                - unbracket
                - unbracket
        - Branch String:   'lib/socket-util.c:380,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:381,18'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:384,30'
              BranchSideFuncs:
                - unbracket
                - unbracket
        - Branch String:   'lib/socket-util.c:387,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:388,14'
              BranchSideFuncs:
                - unbracket
                - unbracket
            - BranchSide:      'lib/socket-util.c:391,32'
              BranchSideFuncs:
                - unbracket
      Callsites:
        - Src:             'lib/socket-util.c:389,26'
          Dst:             unbracket
        - Src:             'lib/socket-util.c:391,22'
          Dst:             unbracket
    - functionName:    inet_open_active
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 591
      functionLinenumberEnd: 650
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - style
        - target
        - default_port
        - ssp
        - fdp
        - dscp
      BBCount:         43
      ICount:          233
      EdgeCount:       56
      CyclomaticComplexity: 15
      functionsReached:
        - close
        - connect
        - inet_parse_active
        - set_dscp
        - set_nonblocking
        - sock_errno
        - sock_strerror
        - socket
        - ss_length
        - vlog
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:597,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:598,15'
              BranchSideFuncs:
                - socket
                - set_nonblocking
                - set_dscp
                - ss_length
                - connect
                - sock_errno
                - close
                - sock_strerror
                - vlog
                - sock_errno
                - sock_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:603,20'
              BranchSideFuncs:
                - socket
                - set_nonblocking
                - set_dscp
                - ss_length
                - connect
                - sock_errno
                - close
                - sock_strerror
                - vlog
                - sock_errno
                - sock_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:604,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:605,17'
              BranchSideFuncs:
                - sock_errno
                - close
                - sock_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:609,29'
              BranchSideFuncs:
                - set_nonblocking
                - set_dscp
                - ss_length
                - connect
                - sock_errno
                - close
                - sock_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:606,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:606,9'
              BranchSideFuncs:
                - sock_strerror
                - vlog
                - close
            - BranchSide:      'lib/socket-util.c:607,9'
              BranchSideFuncs:
                - close
        - Branch String:   'lib/socket-util.c:610,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:611,9'
              BranchSideFuncs:
                - close
            - BranchSide:      'lib/socket-util.c:617,22'
              BranchSideFuncs:
                - set_dscp
                - ss_length
                - connect
                - sock_errno
                - close
                - sock_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:618,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:619,9'
              BranchSideFuncs:
                - close
                - sock_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:624,21'
              BranchSideFuncs:
                - ss_length
                - connect
                - sock_errno
                - close
        - Branch String:   'lib/socket-util.c:619,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:619,9'
              BranchSideFuncs:
                - sock_strerror
                - vlog
                - close
            - BranchSide:      'lib/socket-util.c:620,9'
              BranchSideFuncs:
                - close
        - Branch String:   'lib/socket-util.c:624,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:624,11'
              BranchSideFuncs:
                - close
            - BranchSide:      'lib/socket-util.c:626,23'
              BranchSideFuncs:
                - sock_errno
                - close
        - Branch String:   'lib/socket-util.c:627,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:627,18'
              BranchSideFuncs:
                - close
            - BranchSide:      'lib/socket-util.c:632,15'
              BranchSideFuncs:
                - close
        - Branch String:   'lib/socket-util.c:636,15'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:636,18'
              BranchSideFuncs:
                - close
            - BranchSide:      'lib/socket-util.c:645,13'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:636,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:637,13'
              BranchSideFuncs:
                - close
            - BranchSide:      'lib/socket-util.c:645,13'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:637,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:638,20'
              BranchSideFuncs:
                - close
            - BranchSide:      'lib/socket-util.c:640,13'
              BranchSideFuncs:
                - close
        - Branch String:   'lib/socket-util.c:640,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:641,25'
              BranchSideFuncs:
                - close
            - BranchSide:      'lib/socket-util.c:644,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/socket-util.c:597,10'
          Dst:             inet_parse_active
        - Src:             'lib/socket-util.c:603,10'
          Dst:             socket
        - Src:             'lib/socket-util.c:605,17'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:606,9'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:606,9'
          Dst:             vlog
        - Src:             'lib/socket-util.c:609,13'
          Dst:             set_nonblocking
        - Src:             'lib/socket-util.c:617,13'
          Dst:             set_dscp
        - Src:             'lib/socket-util.c:619,9'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:619,9'
          Dst:             vlog
        - Src:             'lib/socket-util.c:624,50'
          Dst:             ss_length
        - Src:             'lib/socket-util.c:624,13'
          Dst:             connect
        - Src:             'lib/socket-util.c:626,23'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:641,13'
          Dst:             close
    - functionName:    inet_parse_active
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 540
      functionLinenumberEnd: 566
      functionDepth:   0
      returnType:      bool
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - target_
        - default_port
        - ss
        - resolve_host
        - dns_failure
      BBCount:         31
      ICount:          161
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - inet_parse_host_port_tokens
        - parse_sockaddr_components
        - vlog
        - xstrdup
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:546,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:547,9'
              BranchSideFuncs:
                - parse_sockaddr_components
                - free
                - vlog
            - BranchSide:      'lib/socket-util.c:552,17'
              BranchSideFuncs:
                - parse_sockaddr_components
                - free
                - vlog
        - Branch String:   'lib/socket-util.c:547,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:547,9'
              BranchSideFuncs:
                - vlog
                - free
            - BranchSide:      'lib/socket-util.c:548,12'
              BranchSideFuncs:
                - free
        - Branch String:   'lib/socket-util.c:549,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:550,14'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/socket-util.c:552,5'
              BranchSideFuncs:
                - free
        - Branch String:   'lib/socket-util.c:552,22'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:552,25'
              BranchSideFuncs:
                - parse_sockaddr_components
                - free
            - BranchSide:      'lib/socket-util.c:559,40'
              BranchSideFuncs:
                - parse_sockaddr_components
                - free
        - Branch String:   'lib/socket-util.c:552,16'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:553,9'
              BranchSideFuncs:
                - free
                - vlog
            - BranchSide:      'lib/socket-util.c:559,40'
              BranchSideFuncs:
                - parse_sockaddr_components
                - free
        - Branch String:   'lib/socket-util.c:553,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:553,9'
              BranchSideFuncs:
                - vlog
                - free
            - BranchSide:      'lib/socket-util.c:554,12'
              BranchSideFuncs:
                - free
        - Branch String:   'lib/socket-util.c:555,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:556,14'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/socket-util.c:558,5'
              BranchSideFuncs:
                - free
        - Branch String:   'lib/socket-util.c:562,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:562,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/socket-util.c:563,16'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'lib/socket-util.c:541,20'
          Dst:             xstrdup
        - Src:             'lib/socket-util.c:545,5'
          Dst:             inet_parse_host_port_tokens
        - Src:             'lib/socket-util.c:547,9'
          Dst:             vlog
        - Src:             'lib/socket-util.c:553,9'
          Dst:             vlog
        - Src:             'lib/socket-util.c:559,14'
          Dst:             parse_sockaddr_components
    - functionName:    connect
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    inet_parse_host_port_tokens
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 411
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - hostp
        - portp
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - inet_parse_tokens__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:410,5'
          Dst:             inet_parse_tokens__
    - functionName:    guess_netmask
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 344
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ip_
      BBCount:         12
      ICount:          59
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - htonl
        - ntohl
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:341,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:341,31'
              BranchSideFuncs:
                - htonl
            - BranchSide:      'lib/socket-util.c:342,16'
              BranchSideFuncs:
                - htonl
                - htonl
                - htonl
        - Branch String:   'lib/socket-util.c:342,15'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:342,33'
              BranchSideFuncs:
                - htonl
            - BranchSide:      'lib/socket-util.c:343,16'
              BranchSideFuncs:
                - htonl
                - htonl
        - Branch String:   'lib/socket-util.c:343,15'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:343,33'
              BranchSideFuncs:
                - htonl
            - BranchSide:      'lib/socket-util.c:344,15'
              BranchSideFuncs:
                - htonl
      Callsites:
        - Src:             'lib/socket-util.c:340,19'
          Dst:             ntohl
        - Src:             'lib/socket-util.c:341,31'
          Dst:             htonl
        - Src:             'lib/socket-util.c:342,33'
          Dst:             htonl
        - Src:             'lib/socket-util.c:343,33'
          Dst:             htonl
        - Src:             'lib/socket-util.c:344,15'
          Dst:             htonl
    - functionName:    htonl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    43
      BranchProfiles:  []
      Callsites:       []
    - functionName:    drain_fd
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - fd
        - n_packets
      BBCount:         10
      ICount:          46
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - read
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:325,5'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:325,5'
              BranchSideFuncs:
                - read
            - BranchSide:      'lib/socket-util.c:331,18'
              BranchSideFuncs:
                - read
        - Branch String:   'lib/socket-util.c:331,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:332,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:334,5'
              BranchSideFuncs:
                - read
      Callsites:
        - Src:             'lib/socket-util.c:331,13'
          Dst:             read
    - functionName:    get_socket_rcvbuf
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 316
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - sock
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - getsockopt_int
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:316,12'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:316,21'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:316,29'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/socket-util.c:315,13'
          Dst:             getsockopt_int
    - functionName:    check_connection_completion
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - fd
      BBCount:         29
      ICount:          145
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - poll
        - send
        - sock_errno
        - sock_strerror
        - vlog_rate_limit
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:268,25'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:268,28'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - sock_errno
                - sock_strerror
                - vlog_rate_limit
                - send
                - vlog_rate_limit
                - sock_errno
                - poll
            - BranchSide:      'lib/socket-util.c:268,5'
              BranchSideFuncs:
                - __errno_location
                - sock_errno
                - sock_strerror
                - vlog_rate_limit
                - send
                - vlog_rate_limit
                - sock_errno
                - poll
                - __errno_location
        - Branch String:   'lib/socket-util.c:268,5'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:267,18'
              BranchSideFuncs:
                - poll
                - __errno_location
                - sock_errno
                - sock_strerror
                - vlog_rate_limit
                - send
                - vlog_rate_limit
                - sock_errno
                - __errno_location
            - BranchSide:      'lib/socket-util.c:288,9'
              BranchSideFuncs:
                - __errno_location
                - sock_errno
                - sock_strerror
                - vlog_rate_limit
                - send
                - vlog_rate_limit
                - sock_errno
        - Branch String:   'lib/socket-util.c:288,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:289,17'
              BranchSideFuncs:
                - send
                - vlog_rate_limit
                - sock_errno
            - BranchSide:      'lib/socket-util.c:299,16'
              BranchSideFuncs:
                - __errno_location
                - sock_errno
                - sock_strerror
                - vlog_rate_limit
        - Branch String:   'lib/socket-util.c:289,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:290,30'
              BranchSideFuncs:
                - send
                - vlog_rate_limit
                - sock_errno
            - BranchSide:      'lib/socket-util.c:298,9'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:291,17'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:292,24'
              BranchSideFuncs:
                - sock_errno
            - BranchSide:      'lib/socket-util.c:294,17'
              BranchSideFuncs:
                - vlog_rate_limit
        - Branch String:   'lib/socket-util.c:294,17'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:294,17'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/socket-util.c:295,17'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:299,16'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:300,9'
              BranchSideFuncs:
                - __errno_location
                - sock_errno
                - sock_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/socket-util.c:303,9'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:300,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:300,9'
              BranchSideFuncs:
                - sock_errno
                - sock_strerror
                - vlog_rate_limit
                - __errno_location
            - BranchSide:      'lib/socket-util.c:301,16'
              BranchSideFuncs:
                - __errno_location
      Callsites:
        - Src:             'lib/socket-util.c:267,18'
          Dst:             poll
        - Src:             'lib/socket-util.c:268,28'
          Dst:             __errno_location
        - Src:             'lib/socket-util.c:290,25'
          Dst:             send
        - Src:             'lib/socket-util.c:292,24'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:294,17'
          Dst:             vlog_rate_limit
        - Src:             'lib/socket-util.c:300,9'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:300,9'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:300,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/socket-util.c:301,16'
          Dst:             __errno_location
    - functionName:    poll
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    send
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lookup_hostname
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - host_name
        - addr
      BBCount:         21
      ICount:          113
      EdgeCount:       21
      CyclomaticComplexity: 2
      functionsReached:
        - freeaddrinfo
        - getaddrinfo
        - ip_parse
        - sock_errno
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:205,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:206,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:209,5'
              BranchSideFuncs:
                - getaddrinfo
                - sock_errno
                - freeaddrinfo
        - Branch String:   'lib/socket-util.c:212,5'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:214,10'
              BranchSideFuncs:
                - freeaddrinfo
            - BranchSide:      'lib/socket-util.c:224,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:224,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:224,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:227,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:232,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:232,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:232,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:235,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:238,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:242,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:247,16'
              BranchSideFuncs:
                - sock_errno
            - BranchSide:      'lib/socket-util.c:251,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/socket-util.c:205,9'
          Dst:             ip_parse
        - Src:             'lib/socket-util.c:212,13'
          Dst:             getaddrinfo
        - Src:             'lib/socket-util.c:216,9'
          Dst:             freeaddrinfo
        - Src:             'lib/socket-util.c:247,16'
          Dst:             sock_errno
    - functionName:    getaddrinfo
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freeaddrinfo
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lookup_ipv6
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - host_name
        - addr
      BBCount:         11
      ICount:          54
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - ipv6_parse
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:182,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:184,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:187,5'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:184,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:184,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/socket-util.c:185,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/socket-util.c:182,10'
          Dst:             ipv6_parse
        - Src:             'lib/socket-util.c:184,9'
          Dst:             vlog_rate_limit
    - functionName:    lookup_ip
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - host_name
        - addr
      BBCount:         11
      ICount:          55
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - ip_parse
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:168,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:170,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util.c:173,5'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util.c:170,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:170,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/socket-util.c:171,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/socket-util.c:168,10'
          Dst:             ip_parse
        - Src:             'lib/socket-util.c:170,9'
          Dst:             vlog_rate_limit
    - functionName:    addr_is_ipv6
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - host_name
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strchr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util.c:159,12'
          Dst:             strchr
    - functionName:    setsockopt_tcp_nodelay
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - fd
      BBCount:         11
      ICount:          58
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - setsockopt
        - sock_errno
        - sock_strerror
        - vlog
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:112,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:112,9'
              BranchSideFuncs:
                - sock_errno
                - sock_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:113,18'
              BranchSideFuncs:
                - sock_errno
                - sock_strerror
                - vlog
        - Branch String:   'lib/socket-util.c:114,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:114,9'
              BranchSideFuncs:
                - sock_strerror
                - vlog
            - BranchSide:      'lib/socket-util.c:115,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/socket-util.c:111,14'
          Dst:             setsockopt
        - Src:             'lib/socket-util.c:113,18'
          Dst:             sock_errno
        - Src:             'lib/socket-util.c:114,9'
          Dst:             sock_strerror
        - Src:             'lib/socket-util.c:114,9'
          Dst:             vlog
    - functionName:    xset_nonblocking
      functionSourceFile: '/src/openvswitch/lib/socket-util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - fd
      BBCount:         5
      ICount:          27
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - exit
        - set_nonblocking
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/socket-util.c:100,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util.c:101,9'
              BranchSideFuncs:
                - exit
            - BranchSide:      'lib/socket-util.c:103,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/socket-util.c:100,9'
          Dst:             set_nonblocking
        - Src:             'lib/socket-util.c:101,9'
          Dst:             exit
    - functionName:    exit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_this_module_stream
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream.c:44,1'
          Branch Sides:
            - BranchSide:      'lib/stream.c:44,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/stream.c:44,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/stream.c:44,1'
          Dst:             vlog_insert_module
    - functionName:    pstream_open_init_coverage
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream.c:46,1'
          Branch Sides:
            - BranchSide:      'lib/stream.c:46,1'
              BranchSideFuncs:
                - coverage_counter_register
            - BranchSide:      'lib/stream.c:46,1'
              BranchSideFuncs:
                - coverage_counter_register
      Callsites:
        - Src:             'lib/stream.c:46,1'
          Dst:             coverage_counter_register
    - functionName:    stream_open_init_coverage
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream.c:47,1'
          Branch Sides:
            - BranchSide:      'lib/stream.c:47,1'
              BranchSideFuncs:
                - coverage_counter_register
            - BranchSide:      'lib/stream.c:47,1'
              BranchSideFuncs:
                - coverage_counter_register
      Callsites:
        - Src:             'lib/stream.c:47,1'
          Dst:             coverage_counter_register
    - functionName:    stream_open_count
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_stream_open_get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream.c:47,1'
          Branch Sides:
            - BranchSide:      'lib/stream.c:47,1'
              BranchSideFuncs:
                - counter_stream_open_get
            - BranchSide:      'lib/stream.c:47,1'
              BranchSideFuncs:
                - counter_stream_open_get
      Callsites:
        - Src:             'lib/stream.c:47,1'
          Dst:             counter_stream_open_get
    - functionName:    counter_stream_open_get
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_stream_open_get_unsafe
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/stream.c:47,1'
          Branch Sides:
            - BranchSide:      'lib/stream.c:47,1'
              BranchSideFuncs:
                - counter_stream_open_get_unsafe
            - BranchSide:      'lib/stream.c:47,1'
              BranchSideFuncs:
                - counter_stream_open_get_unsafe
      Callsites:
        - Src:             'lib/stream.c:47,1'
          Dst:             counter_stream_open_get_unsafe
    - functionName:    counter_stream_open_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pstream_open_count
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_pstream_open_get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream.c:46,1'
          Branch Sides:
            - BranchSide:      'lib/stream.c:46,1'
              BranchSideFuncs:
                - counter_pstream_open_get
            - BranchSide:      'lib/stream.c:46,1'
              BranchSideFuncs:
                - counter_pstream_open_get
      Callsites:
        - Src:             'lib/stream.c:46,1'
          Dst:             counter_pstream_open_get
    - functionName:    counter_pstream_open_get
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_pstream_open_get_unsafe
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/stream.c:46,1'
          Branch Sides:
            - BranchSide:      'lib/stream.c:46,1'
              BranchSideFuncs:
                - counter_pstream_open_get_unsafe
            - BranchSide:      'lib/stream.c:46,1'
              BranchSideFuncs:
                - counter_pstream_open_get_unsafe
      Callsites:
        - Src:             'lib/stream.c:46,1'
          Dst:             counter_pstream_open_get_unsafe
    - functionName:    counter_pstream_open_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    check_stream_classes
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_content_type_to_string
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 820
      functionLinenumberEnd: 835
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - type
      BBCount:         8
      ICount:          38
      EdgeCount:       14
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/stream.c:821,5'
          Branch Sides:
            - BranchSide:      'lib/stream.c:822,5'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:824,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:827,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:830,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:833,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    stream_guess_content
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 801
      functionLinenumberEnd: 815
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - data
        - size
      BBCount:         9
      ICount:          54
      EdgeCount:       17
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream.c:802,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:804,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:814,5'
              BranchSideFuncs: []
        - Branch String:   'lib/stream.c:804,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:806,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:808,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:810,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:812,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    stream_report_content
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 846
      functionLinenumberEnd: 858
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - data
        - size
        - expected_type
        - module
        - stream_name
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - stream_content_type_to_string
        - stream_guess_content
        - vlog_rate_limit
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/stream.c:851,38'
          Branch Sides:
            - BranchSide:      'lib/stream.c:851,41'
              BranchSideFuncs:
                - stream_content_type_to_string
                - stream_content_type_to_string
                - vlog_rate_limit
            - BranchSide:      'lib/stream.c:851,38'
              BranchSideFuncs: []
        - Branch String:   'lib/stream.c:851,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:851,9'
              BranchSideFuncs:
                - stream_content_type_to_string
                - stream_content_type_to_string
                - vlog_rate_limit
            - BranchSide:      'lib/stream.c:852,25'
              BranchSideFuncs:
                - stream_content_type_to_string
                - stream_content_type_to_string
                - vlog_rate_limit
      Callsites:
        - Src:             'lib/stream.c:850,19'
          Dst:             stream_guess_content
        - Src:             'lib/stream.c:855,25'
          Dst:             stream_content_type_to_string
        - Src:             'lib/stream.c:856,25'
          Dst:             stream_content_type_to_string
        - Src:             'lib/stream.c:852,9'
          Dst:             vlog_rate_limit
    - functionName:    stream_parse_target_with_default_port
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 792
      functionLinenumberEnd: 794
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - target
        - default_port
        - ss
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - inet_parse_active
        - strncmp
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream.c:793,42'
          Branch Sides:
            - BranchSide:      'lib/stream.c:793,54'
              BranchSideFuncs:
                - strncmp
                - inet_parse_active
            - BranchSide:      'lib/stream.c:794,34'
              BranchSideFuncs:
                - inet_parse_active
        - Branch String:   'lib/stream.c:794,13'
          Branch Sides:
            - BranchSide:      'lib/stream.c:794,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:794,34'
              BranchSideFuncs:
                - inet_parse_active
      Callsites:
        - Src:             'lib/stream.c:793,15'
          Dst:             strncmp
        - Src:             'lib/stream.c:793,46'
          Dst:             strncmp
        - Src:             'lib/stream.c:794,16'
          Dst:             inet_parse_active
    - functionName:    pstream_open_with_default_port
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 765
      functionLinenumberEnd: 778
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - name_
        - default_port
        - pstreamp
        - dscp
      BBCount:         12
      ICount:          79
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - count_fields
        - pstream_open
        - strncmp
        - xasprintf
        - xstrdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream.c:769,38'
          Branch Sides:
            - BranchSide:      'lib/stream.c:769,50'
              BranchSideFuncs:
                - strncmp
                - count_fields
                - xstrdup
                - pstream_open
                - free
                - xasprintf
            - BranchSide:      'lib/stream.c:770,25'
              BranchSideFuncs:
                - count_fields
                - xstrdup
                - pstream_open
                - free
                - xasprintf
        - Branch String:   'lib/stream.c:770,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:770,25'
              BranchSideFuncs:
                - xstrdup
                - pstream_open
                - free
            - BranchSide:      'lib/stream.c:773,24'
              BranchSideFuncs:
                - xstrdup
                - pstream_open
                - free
        - Branch String:   'lib/stream.c:769,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:771,34'
              BranchSideFuncs:
                - xasprintf
                - pstream_open
                - free
            - BranchSide:      'lib/stream.c:773,24'
              BranchSideFuncs:
                - xstrdup
                - pstream_open
                - free
      Callsites:
        - Src:             'lib/stream.c:769,11'
          Dst:             strncmp
        - Src:             'lib/stream.c:769,42'
          Dst:             strncmp
        - Src:             'lib/stream.c:770,12'
          Dst:             count_fields
        - Src:             'lib/stream.c:771,16'
          Dst:             xasprintf
        - Src:             'lib/stream.c:773,16'
          Dst:             xstrdup
        - Src:             'lib/stream.c:775,13'
          Dst:             pstream_open
    - functionName:    count_fields
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 711
      functionLinenumberEnd: 723
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s_
      BBCount:         7
      ICount:          50
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - strtok_r
        - xstrdup
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/stream.c:717,5'
          Branch Sides:
            - BranchSide:      'lib/stream.c:719,10'
              BranchSideFuncs:
                - strtok_r
                - free
            - BranchSide:      'lib/stream.c:721,10'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'lib/stream.c:716,9'
          Dst:             xstrdup
        - Src:             'lib/stream.c:717,18'
          Dst:             strtok_r
        - Src:             'lib/stream.c:718,18'
          Dst:             strtok_r
    - functionName:    pstream_open
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 551
      functionLinenumberEnd: 582
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - name
        - pstreamp
        - dscp
      BBCount:         9
      ICount:          85
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - pstream_lookup_class
        - pstream_open_add
        - pstream_replay_open_wfd
        - strchr
        - xstrdup
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/stream.c:561,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:562,9'
              BranchSideFuncs:
                - strchr
                - xstrdup
                - free
                - pstream_replay_open_wfd
            - BranchSide:      'lib/stream.c:566,34'
              BranchSideFuncs:
                - strchr
                - xstrdup
                - free
                - pstream_replay_open_wfd
        - Branch String:   'lib/stream.c:571,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:572,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:576,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream.c:557,5'
          Dst:             pstream_open_add
        - Src:             'lib/stream.c:560,13'
          Dst:             pstream_lookup_class
        - Src:             'lib/stream.c:566,27'
          Dst:             strchr
        - Src:             'lib/stream.c:566,19'
          Dst:             xstrdup
        - Src:             'lib/stream.c:570,5'
          Dst:             pstream_replay_open_wfd
    - functionName:    pstream_open_add
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - n
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_pstream_open_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:46,1'
          Dst:             counter_pstream_open_get
    - functionName:    pstream_lookup_class
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 488
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - classp
      BBCount:         18
      ICount:          111
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - check_stream_classes
        - memcmp
        - ovs_replay_get_state
        - strcspn
        - strlen
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/stream.c:496,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:497,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:499,12'
              BranchSideFuncs:
                - strlen
                - memcmp
                - ovs_replay_get_state
        - Branch String:   'lib/stream.c:499,5'
          Branch Sides:
            - BranchSide:      'lib/stream.c:500,61'
              BranchSideFuncs:
                - strlen
                - memcmp
                - ovs_replay_get_state
            - BranchSide:      'lib/stream.c:511,5'
              BranchSideFuncs: []
        - Branch String:   'lib/stream.c:502,13'
          Branch Sides:
            - BranchSide:      'lib/stream.c:502,24'
              BranchSideFuncs:
                - memcmp
                - ovs_replay_get_state
                - strlen
            - BranchSide:      'lib/stream.c:510,5'
              BranchSideFuncs:
                - strlen
                - memcmp
                - ovs_replay_get_state
        - Branch String:   'lib/stream.c:501,13'
          Branch Sides:
            - BranchSide:      'lib/stream.c:503,17'
              BranchSideFuncs:
                - strlen
                - memcmp
                - ovs_replay_get_state
            - BranchSide:      'lib/stream.c:510,5'
              BranchSideFuncs:
                - strlen
                - memcmp
                - ovs_replay_get_state
        - Branch String:   'lib/stream.c:503,17'
          Branch Sides:
            - BranchSide:      'lib/stream.c:504,18'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:506,27'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream.c:492,5'
          Dst:             check_stream_classes
        - Src:             'lib/stream.c:495,18'
          Dst:             strcspn
        - Src:             'lib/stream.c:501,13'
          Dst:             strlen
        - Src:             'lib/stream.c:502,17'
          Dst:             memcmp
        - Src:             'lib/stream.c:503,17'
          Dst:             ovs_replay_get_state
    - functionName:    strcspn
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    memcmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strtok_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - once
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/thread.h:161,12'
          Branch Sides:
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs:
                - ovsthread_once_start__
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    stream_open_with_default_port
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 733
      functionLinenumberEnd: 755
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - name_
        - default_port
        - streamp
        - dscp
      BBCount:         28
      ICount:          127
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - count_fields
        - ovsthread_once_done
        - ovsthread_once_start
        - stream_open
        - strncmp
        - vlog
        - xasprintf
        - xstrdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream.c:737,37'
          Branch Sides:
            - BranchSide:      'lib/stream.c:737,49'
              BranchSideFuncs:
                - strncmp
                - count_fields
                - xstrdup
                - stream_open
                - free
                - xasprintf
                - ovsthread_once_start.1603
                - vlog
                - ovsthread_once_done
                - ovsthread_once_start.1603
                - vlog
                - ovsthread_once_done
            - BranchSide:      'lib/stream.c:738,25'
              BranchSideFuncs:
                - count_fields
                - xstrdup
                - stream_open
                - free
                - xasprintf
                - ovsthread_once_start.1603
                - vlog
                - ovsthread_once_done
                - ovsthread_once_start.1603
                - vlog
                - ovsthread_once_done
        - Branch String:   'lib/stream.c:738,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:738,25'
              BranchSideFuncs:
                - xstrdup
                - stream_open
                - free
            - BranchSide:      'lib/stream.c:750,24'
              BranchSideFuncs:
                - xstrdup
                - stream_open
                - free
        - Branch String:   'lib/stream.c:737,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:739,13'
              BranchSideFuncs:
                - xasprintf
                - stream_open
                - free
                - ovsthread_once_start.1603
                - vlog
                - ovsthread_once_done
                - ovsthread_once_start.1603
                - vlog
                - ovsthread_once_done
            - BranchSide:      'lib/stream.c:750,24'
              BranchSideFuncs:
                - xstrdup
                - stream_open
                - free
        - Branch String:   'lib/stream.c:739,13'
          Branch Sides:
            - BranchSide:      'lib/stream.c:740,13'
              BranchSideFuncs:
                - ovsthread_once_start.1603
                - xasprintf
                - stream_open
                - free
                - vlog
                - ovsthread_once_done
            - BranchSide:      'lib/stream.c:743,20'
              BranchSideFuncs:
                - xasprintf
                - stream_open
                - free
                - ovsthread_once_start.1603
                - vlog
                - ovsthread_once_done
        - Branch String:   'lib/stream.c:740,13'
          Branch Sides:
            - BranchSide:      'lib/stream.c:740,13'
              BranchSideFuncs:
                - vlog
                - ovsthread_once_done
                - xasprintf
                - stream_open
                - free
            - BranchSide:      'lib/stream.c:743,9'
              BranchSideFuncs:
                - xasprintf
                - stream_open
                - free
        - Branch String:   'lib/stream.c:744,13'
          Branch Sides:
            - BranchSide:      'lib/stream.c:744,13'
              BranchSideFuncs:
                - vlog
                - ovsthread_once_done
                - xasprintf
                - stream_open
                - free
            - BranchSide:      'lib/stream.c:747,9'
              BranchSideFuncs:
                - xasprintf
                - stream_open
                - free
      Callsites:
        - Src:             'lib/stream.c:737,11'
          Dst:             strncmp
        - Src:             'lib/stream.c:737,41'
          Dst:             strncmp
        - Src:             'lib/stream.c:738,12'
          Dst:             count_fields
        - Src:             'lib/stream.c:740,13'
          Dst:             ovsthread_once_start
        - Src:             'lib/stream.c:740,13'
          Dst:             vlog
        - Src:             'lib/stream.c:740,13'
          Dst:             ovsthread_once_done
        - Src:             'lib/stream.c:744,13'
          Dst:             ovsthread_once_start
        - Src:             'lib/stream.c:744,13'
          Dst:             vlog
        - Src:             'lib/stream.c:744,13'
          Dst:             ovsthread_once_done
        - Src:             'lib/stream.c:748,16'
          Dst:             xasprintf
        - Src:             'lib/stream.c:750,16'
          Dst:             xstrdup
        - Src:             'lib/stream.c:752,13'
          Dst:             stream_open
    - functionName:    stream_open
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - name
        - streamp
        - dscp
      BBCount:         9
      ICount:          85
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strchr
        - stream_lookup_class
        - stream_open_add
        - stream_replay_open_wfd
        - xstrdup
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/stream.c:230,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:231,9'
              BranchSideFuncs:
                - strchr
                - xstrdup
                - free
                - stream_replay_open_wfd
            - BranchSide:      'lib/stream.c:235,34'
              BranchSideFuncs:
                - strchr
                - xstrdup
                - free
                - stream_replay_open_wfd
        - Branch String:   'lib/stream.c:240,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:241,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:245,16'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream.c:226,5'
          Dst:             stream_open_add
        - Src:             'lib/stream.c:229,13'
          Dst:             stream_lookup_class
        - Src:             'lib/stream.c:235,27'
          Dst:             strchr
        - Src:             'lib/stream.c:235,19'
          Dst:             xstrdup
        - Src:             'lib/stream.c:239,5'
          Dst:             stream_replay_open_wfd
    - functionName:    stream_open_add
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - n
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_stream_open_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:47,1'
          Dst:             counter_stream_open_get
    - functionName:    stream_lookup_class
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - classp
      BBCount:         18
      ICount:          111
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - check_stream_classes
        - memcmp
        - ovs_replay_get_state
        - strcspn
        - strlen
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/stream.c:184,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:185,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:187,12'
              BranchSideFuncs:
                - strlen
                - memcmp
                - ovs_replay_get_state
        - Branch String:   'lib/stream.c:187,5'
          Branch Sides:
            - BranchSide:      'lib/stream.c:188,59'
              BranchSideFuncs:
                - strlen
                - memcmp
                - ovs_replay_get_state
            - BranchSide:      'lib/stream.c:199,5'
              BranchSideFuncs: []
        - Branch String:   'lib/stream.c:190,13'
          Branch Sides:
            - BranchSide:      'lib/stream.c:190,24'
              BranchSideFuncs:
                - memcmp
                - ovs_replay_get_state
                - strlen
            - BranchSide:      'lib/stream.c:198,5'
              BranchSideFuncs:
                - strlen
                - memcmp
                - ovs_replay_get_state
        - Branch String:   'lib/stream.c:189,13'
          Branch Sides:
            - BranchSide:      'lib/stream.c:191,17'
              BranchSideFuncs:
                - strlen
                - memcmp
                - ovs_replay_get_state
            - BranchSide:      'lib/stream.c:198,5'
              BranchSideFuncs:
                - strlen
                - memcmp
                - ovs_replay_get_state
        - Branch String:   'lib/stream.c:191,17'
          Branch Sides:
            - BranchSide:      'lib/stream.c:192,18'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:194,27'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream.c:180,5'
          Dst:             check_stream_classes
        - Src:             'lib/stream.c:183,18'
          Dst:             strcspn
        - Src:             'lib/stream.c:189,13'
          Dst:             strlen
        - Src:             'lib/stream.c:190,17'
          Dst:             memcmp
        - Src:             'lib/stream.c:191,17'
          Dst:             ovs_replay_get_state
    - functionName:    pstream_set_bound_port
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 705
      functionLinenumberEnd: 707
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - pstream
        - port
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pstream_init
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 697
      functionLinenumberEnd: 701
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
        - class
        - name
      BBCount:         1
      ICount:          23
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_init
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 682
      functionLinenumberEnd: 691
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
        - class
        - connect_status
        - name
      BBCount:         7
      ICount:          72
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/stream.c:685,22'
          Branch Sides:
            - BranchSide:      'lib/stream.c:685,5'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:686,24'
              BranchSideFuncs: []
        - Branch String:   'lib/stream.c:690,5'
          Branch Sides:
            - BranchSide:      'lib/stream.c:690,5'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:690,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    pstream_get_bound_port
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 658
      functionLinenumberEnd: 659
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pstream_wait
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 650
      functionLinenumberEnd: 652
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pstream_accept_block
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 634
      functionLinenumberEnd: 645
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
        - new_stream
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fatal_signal_run
        - poll_block
        - pstream_accept
        - pstream_wait
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream.c:638,5'
          Branch Sides:
            - BranchSide:      'lib/stream.c:639,22'
              BranchSideFuncs:
                - pstream_wait
                - poll_block
                - pstream_accept
            - BranchSide:      'lib/stream.c:642,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream.c:642,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:642,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:643,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream.c:637,5'
          Dst:             fatal_signal_run
        - Src:             'lib/stream.c:638,21'
          Dst:             pstream_accept
        - Src:             'lib/stream.c:639,9'
          Dst:             pstream_wait
        - Src:             'lib/stream.c:640,9'
          Dst:             poll_block
    - functionName:    pstream_accept
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 623
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
        - new_stream
      BBCount:         9
      ICount:          80
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - pstream_replay_write_accept
        - stream_replay_open_wfd
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/stream.c:614,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:615,10'
              BranchSideFuncs:
                - pstream_replay_write_accept
            - BranchSide:      'lib/stream.c:618,9'
              BranchSideFuncs:
                - pstream_replay_write_accept
                - stream_replay_open_wfd
        - Branch String:   'lib/stream.c:618,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:618,9'
              BranchSideFuncs:
                - pstream_replay_write_accept
                - stream_replay_open_wfd
            - BranchSide:      'lib/stream.c:618,9'
              BranchSideFuncs:
                - pstream_replay_write_accept
                - stream_replay_open_wfd
      Callsites:
        - Src:             'lib/stream.c:616,9'
          Dst:             pstream_replay_write_accept
        - Src:             'lib/stream.c:620,9'
          Dst:             pstream_replay_write_accept
        - Src:             'lib/stream.c:621,9'
          Dst:             stream_replay_open_wfd
    - functionName:    pstream_close
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 595
      functionLinenumberEnd: 602
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pstream_replay_close_wfd
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/stream.c:596,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:596,9'
              BranchSideFuncs:
                - pstream_replay_close_wfd
                - free
            - BranchSide:      'lib/stream.c:597,22'
              BranchSideFuncs:
                - pstream_replay_close_wfd
                - free
      Callsites:
        - Src:             'lib/stream.c:598,9'
          Dst:             pstream_replay_close_wfd
    - functionName:    pstream_get_name
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 588
      functionLinenumberEnd: 589
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_or_pstream_needs_probes
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 540
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
      BBCount:         8
      ICount:          55
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - pstream_lookup_class
        - stream_lookup_class
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream.c:533,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:534,16'
              BranchSideFuncs:
                - pstream_lookup_class
            - BranchSide:      'lib/stream.c:535,38'
              BranchSideFuncs:
                - pstream_lookup_class
        - Branch String:   'lib/stream.c:535,16'
          Branch Sides:
            - BranchSide:      'lib/stream.c:536,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:538,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream.c:533,10'
          Dst:             stream_lookup_class
        - Src:             'lib/stream.c:535,17'
          Dst:             pstream_lookup_class
    - functionName:    pstream_verify_name
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 518
      functionLinenumberEnd: 520
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pstream_lookup_class
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:520,12'
          Dst:             pstream_lookup_class
    - functionName:    stream_get_peer_id
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 479
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_set_peer_id
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 471
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
        - peer_id
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xstrdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:473,23'
          Dst:             xstrdup
    - functionName:    stream_send_wait
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 465
      functionLinenumberEnd: 467
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_wait
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:466,5'
          Dst:             stream_wait
    - functionName:    stream_wait
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 435
      functionLinenumberEnd: 449
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - stream
        - wait
      BBCount:         13
      ICount:          73
      EdgeCount:       14
      CyclomaticComplexity: 3
      functionsReached:
        - poll_immediate_wake_at
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/stream.c:436,5'
          Branch Sides:
            - BranchSide:      'lib/stream.c:436,5'
              BranchSideFuncs:
                - poll_immediate_wake_at
            - BranchSide:      'lib/stream.c:436,5'
              BranchSideFuncs:
                - poll_immediate_wake_at
        - Branch String:   'lib/stream.c:436,5'
          Branch Sides:
            - BranchSide:      'lib/stream.c:436,5'
              BranchSideFuncs:
                - poll_immediate_wake_at
            - BranchSide:      'lib/stream.c:436,5'
              BranchSideFuncs:
                - poll_immediate_wake_at
        - Branch String:   'lib/stream.c:439,5'
          Branch Sides:
            - BranchSide:      'lib/stream.c:441,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:445,9'
              BranchSideFuncs:
                - poll_immediate_wake_at
            - BranchSide:      'lib/stream.c:448,6'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream.c:445,9'
          Dst:             poll_immediate_wake_at
    - functionName:    stream_recv_wait
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 459
      functionLinenumberEnd: 461
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_wait
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:460,5'
          Dst:             stream_wait
    - functionName:    stream_send
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 408
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - stream
        - buffer
        - n
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - stream_connect
        - stream_replay_write
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream.c:403,14'
          Branch Sides:
            - BranchSide:      'lib/stream.c:403,24'
              BranchSideFuncs:
                - stream_replay_write
            - BranchSide:      'lib/stream.c:404,16'
              BranchSideFuncs:
                - stream_replay_write
        - Branch String:   'lib/stream.c:404,16'
          Branch Sides:
            - BranchSide:      'lib/stream.c:403,14'
              BranchSideFuncs:
                - stream_replay_write
            - BranchSide:      'lib/stream.c:405,17'
              BranchSideFuncs:
                - stream_replay_write
      Callsites:
        - Src:             'lib/stream.c:402,18'
          Dst:             stream_connect
        - Src:             'lib/stream.c:407,5'
          Dst:             stream_replay_write
    - functionName:    stream_connect
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 342
      functionLinenumberEnd: 364
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         13
      ICount:          66
      EdgeCount:       25
      CyclomaticComplexity: 14
      functionsReached:
        - abort
        - scs_connecting
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/stream.c:347,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:349,28'
              BranchSideFuncs:
                - scs_connecting
                - abort
            - BranchSide:      'lib/stream.c:353,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:356,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:359,13'
              BranchSideFuncs:
                - abort
        - Branch String:   'lib/stream.c:361,5'
          Branch Sides:
            - BranchSide:      'lib/stream.c:346,22'
              BranchSideFuncs:
                - scs_connecting
                - abort
            - BranchSide:      'lib/stream.c:363,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream.c:349,13'
          Dst:             scs_connecting
        - Src:             'lib/stream.c:359,13'
          Dst:             abort
    - functionName:    scs_connecting
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream.c:328,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:329,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:330,16'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    stream_recv
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - stream
        - buffer
        - n
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - stream_connect
        - stream_replay_write
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream.c:382,14'
          Branch Sides:
            - BranchSide:      'lib/stream.c:382,24'
              BranchSideFuncs:
                - stream_replay_write
            - BranchSide:      'lib/stream.c:383,16'
              BranchSideFuncs:
                - stream_replay_write
        - Branch String:   'lib/stream.c:383,16'
          Branch Sides:
            - BranchSide:      'lib/stream.c:382,14'
              BranchSideFuncs:
                - stream_replay_write
            - BranchSide:      'lib/stream.c:384,17'
              BranchSideFuncs:
                - stream_replay_write
      Callsites:
        - Src:             'lib/stream.c:380,18'
          Dst:             stream_connect
        - Src:             'lib/stream.c:386,5'
          Dst:             stream_replay_write
    - functionName:    stream_get_name
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/stream.c:320,12'
          Branch Sides:
            - BranchSide:      'lib/stream.c:320,21'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:320,12'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    stream_close
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 313
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - stream_replay_close_wfd
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/stream.c:305,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:305,9'
              BranchSideFuncs:
                - stream_replay_close_wfd
                - free
                - free
            - BranchSide:      'lib/stream.c:306,22'
              BranchSideFuncs:
                - stream_replay_close_wfd
                - free
                - free
      Callsites:
        - Src:             'lib/stream.c:308,9'
          Dst:             stream_replay_close_wfd
    - functionName:    stream_connect_wait
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 455
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_wait
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:454,5'
          Dst:             stream_wait
    - functionName:    stream_run_wait
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/stream.c:426,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:426,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:427,10'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    stream_run
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 415
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/stream.c:416,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:416,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream.c:417,10'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    stream_open_block
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - error
        - timeout
        - streamp
      BBCount:         24
      ICount:          133
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - fatal_signal_run
        - poll_block
        - poll_timer_wait_until_at
        - stream_close
        - stream_connect
        - stream_connect_wait
        - stream_run
        - stream_run_wait
        - time_msec
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream.c:272,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:273,35'
              BranchSideFuncs:
                - stream_close
            - BranchSide:      'lib/stream.c:292,9'
              BranchSideFuncs:
                - stream_close
        - Branch String:   'lib/stream.c:273,35'
          Branch Sides:
            - BranchSide:      'lib/stream.c:273,23'
              BranchSideFuncs:
                - time_msec
                - stream_connect
                - stream_close
                - stream_run
                - stream_run_wait
                - stream_connect_wait
                - poll_block
                - poll_timer_wait_until_at
                - time_msec
            - BranchSide:      'lib/stream.c:274,37'
              BranchSideFuncs:
                - time_msec
                - stream_connect
                - stream_close
                - stream_run
                - stream_run_wait
                - stream_connect_wait
                - poll_block
                - poll_timer_wait_until_at
                - time_msec
        - Branch String:   'lib/stream.c:276,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:277,17'
              BranchSideFuncs:
                - stream_run
                - stream_run_wait
                - stream_connect_wait
                - poll_block
                - stream_connect
                - stream_close
                - poll_timer_wait_until_at
                - time_msec
            - BranchSide:      'lib/stream.c:289,9'
              BranchSideFuncs:
                - stream_close
        - Branch String:   'lib/stream.c:277,39'
          Branch Sides:
            - BranchSide:      'lib/stream.c:277,42'
              BranchSideFuncs:
                - time_msec
                - stream_run
                - stream_run_wait
                - stream_connect_wait
                - poll_block
                - stream_connect
                - stream_close
                - poll_timer_wait_until_at
            - BranchSide:      'lib/stream.c:281,24'
              BranchSideFuncs:
                - stream_run
                - stream_run_wait
                - stream_connect_wait
                - poll_block
                - stream_connect
                - stream_close
                - time_msec
                - poll_timer_wait_until_at
        - Branch String:   'lib/stream.c:277,17'
          Branch Sides:
            - BranchSide:      'lib/stream.c:278,23'
              BranchSideFuncs:
                - stream_close
            - BranchSide:      'lib/stream.c:281,24'
              BranchSideFuncs:
                - stream_run
                - stream_run_wait
                - stream_connect_wait
                - poll_block
                - stream_connect
                - stream_close
                - time_msec
                - poll_timer_wait_until_at
        - Branch String:   'lib/stream.c:284,17'
          Branch Sides:
            - BranchSide:      'lib/stream.c:285,17'
              BranchSideFuncs:
                - poll_timer_wait_until_at
                - poll_block
                - stream_connect
                - stream_close
                - stream_run
                - stream_run_wait
                - stream_connect_wait
                - time_msec
            - BranchSide:      'lib/stream.c:287,13'
              BranchSideFuncs:
                - poll_block
                - stream_connect
                - stream_close
                - stream_run
                - stream_run_wait
                - stream_connect_wait
                - poll_timer_wait_until_at
                - time_msec
        - Branch String:   'lib/stream.c:292,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:293,22'
              BranchSideFuncs:
                - stream_close
            - BranchSide:      'lib/stream.c:296,20'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream.c:270,5'
          Dst:             fatal_signal_run
        - Src:             'lib/stream.c:274,37'
          Dst:             time_msec
        - Src:             'lib/stream.c:276,25'
          Dst:             stream_connect
        - Src:             'lib/stream.c:277,42'
          Dst:             time_msec
        - Src:             'lib/stream.c:281,13'
          Dst:             stream_run
        - Src:             'lib/stream.c:282,13'
          Dst:             stream_run_wait
        - Src:             'lib/stream.c:283,13'
          Dst:             stream_connect_wait
        - Src:             'lib/stream.c:285,17'
          Dst:             poll_timer_wait_until_at
        - Src:             'lib/stream.c:287,13'
          Dst:             poll_block
        - Src:             'lib/stream.c:293,9'
          Dst:             stream_close
    - functionName:    stream_verify_name
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_lookup_class
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream.c:208,12'
          Dst:             stream_lookup_class
    - functionName:    stream_usage
      functionSourceFile: '/src/openvswitch/lib/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - bool
        - bool
        - bool
      constantsTouched: []
      argNames:
        - name
        - active
        - passive
        - bootstrap
      BBCount:         12
      ICount:          73
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - printf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream.c:128,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:129,51'
              BranchSideFuncs:
                - printf
                - printf
                - printf
                - printf
                - printf
                - printf
                - printf
                - printf
                - printf
                - printf
                - printf
            - BranchSide:      'lib/stream.c:140,9'
              BranchSideFuncs:
                - printf
                - printf
                - printf
                - printf
                - printf
                - printf
                - printf
        - Branch String:   'lib/stream.c:140,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:141,52'
              BranchSideFuncs:
                - printf
                - printf
                - printf
                - printf
                - printf
                - printf
                - printf
            - BranchSide:      'lib/stream.c:153,5'
              BranchSideFuncs:
                - printf
                - printf
                - printf
        - Branch String:   'lib/stream.c:157,9'
          Branch Sides:
            - BranchSide:      'lib/stream.c:157,9'
              BranchSideFuncs:
                - printf
                - printf
            - BranchSide:      'lib/stream.c:158,9'
              BranchSideFuncs:
                - printf
                - printf
      Callsites:
        - Src:             'lib/stream.c:127,5'
          Dst:             printf
        - Src:             'lib/stream.c:129,9'
          Dst:             printf
        - Src:             'lib/stream.c:130,9'
          Dst:             printf
        - Src:             'lib/stream.c:133,9'
          Dst:             printf
        - Src:             'lib/stream.c:136,9'
          Dst:             printf
        - Src:             'lib/stream.c:141,9'
          Dst:             printf
        - Src:             'lib/stream.c:142,9'
          Dst:             printf
        - Src:             'lib/stream.c:145,9'
          Dst:             printf
        - Src:             'lib/stream.c:148,9'
          Dst:             printf
        - Src:             'lib/stream.c:153,5'
          Dst:             printf
        - Src:             'lib/stream.c:158,9'
          Dst:             printf
        - Src:             'lib/stream.c:161,5'
          Dst:             printf
    - functionName:    init_this_module_svec
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/svec.c:27,1'
          Branch Sides:
            - BranchSide:      'lib/svec.c:27,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/svec.c:27,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/svec.c:27,1'
          Dst:             vlog_insert_module
    - functionName:    svec_pop_back
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    svec_back
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    svec_join
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 390
      functionLinenumberEnd: 402
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
        - delimiter
        - terminator
      BBCount:         10
      ICount:          69
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ds_cstr
        - ds_init
        - ds_put_cstr
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/svec.c:395,5'
          Branch Sides:
            - BranchSide:      'lib/svec.c:396,13'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
                - ds_cstr
                - ds_put_cstr
            - BranchSide:      'lib/svec.c:401,22'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_cstr
        - Branch String:   'lib/svec.c:396,13'
          Branch Sides:
            - BranchSide:      'lib/svec.c:397,30'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_cstr
            - BranchSide:      'lib/svec.c:399,26'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
                - ds_cstr
                - ds_put_cstr
      Callsites:
        - Src:             'lib/svec.c:394,5'
          Dst:             ds_init
        - Src:             'lib/svec.c:397,13'
          Dst:             ds_put_cstr
        - Src:             'lib/svec.c:399,9'
          Dst:             ds_put_cstr
        - Src:             'lib/svec.c:401,5'
          Dst:             ds_put_cstr
        - Src:             'lib/svec.c:402,12'
          Dst:             ds_cstr
    - functionName:    svec_equal
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 385
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         12
      ICount:          78
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/svec.c:376,9'
          Branch Sides:
            - BranchSide:      'lib/svec.c:377,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/svec.c:379,12'
              BranchSideFuncs:
                - strcmp
        - Branch String:   'lib/svec.c:379,5'
          Branch Sides:
            - BranchSide:      'lib/svec.c:380,20'
              BranchSideFuncs:
                - strcmp
            - BranchSide:      'lib/svec.c:384,5'
              BranchSideFuncs: []
        - Branch String:   'lib/svec.c:380,13'
          Branch Sides:
            - BranchSide:      'lib/svec.c:381,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/svec.c:383,5'
              BranchSideFuncs:
                - strcmp
      Callsites:
        - Src:             'lib/svec.c:380,13'
          Dst:             strcmp
    - functionName:    ds_put_char
      functionSourceFile: '/src/openvswitch/./include/openvswitch/dynamic-string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ds
        - c
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_put_char__
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/dynamic-string.h:95,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/dynamic-string.h:96,36'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/dynamic-string.h:99,23'
              BranchSideFuncs:
                - ds_put_char__
      Callsites:
        - Src:             './include/openvswitch/dynamic-string.h:99,9'
          Dst:             ds_put_char__
    - functionName:    svec_parse_words
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
        - words
      BBCount:         57
      ICount:          286
      EdgeCount:       73
      CyclomaticComplexity: 18
      functionsReached:
        - __ctype_b_loc
        - ds_clear
        - ds_cstr
        - ds_destroy
        - ds_put_char
        - svec_add
        - vlog
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/svec.c:333,5'
          Branch Sides:
            - BranchSide:      'lib/svec.c:333,5'
              BranchSideFuncs:
                - __ctype_b_loc
                - ds_clear
                - ds_cstr
                - svec_add
                - ds_destroy
                - vlog
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_put_char.1733
                - vlog
            - BranchSide:      'lib/svec.c:334,13'
              BranchSideFuncs:
                - __ctype_b_loc
                - ds_clear
                - ds_cstr
                - svec_add
                - ds_destroy
                - vlog
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_put_char.1733
                - vlog
        - Branch String:   'lib/svec.c:336,9'
          Branch Sides:
            - BranchSide:      'lib/svec.c:337,14'
              BranchSideFuncs:
                - __ctype_b_loc
                - ds_clear
                - ds_cstr
                - svec_add
                - ds_destroy
                - vlog
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_put_char.1733
                - vlog
            - BranchSide:      'lib/svec.c:339,14'
              BranchSideFuncs:
                - ds_clear
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - vlog
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_put_char.1733
                - vlog
        - Branch String:   'lib/svec.c:339,13'
          Branch Sides:
            - BranchSide:      'lib/svec.c:340,13'
              BranchSideFuncs:
                - ds_destroy
            - BranchSide:      'lib/svec.c:343,9'
              BranchSideFuncs:
                - ds_clear
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - vlog
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_put_char.1733
                - vlog
        - Branch String:   'lib/svec.c:344,9'
          Branch Sides:
            - BranchSide:      'lib/svec.c:345,18'
              BranchSideFuncs:
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - vlog
                - ds_put_char.1733
                - vlog
            - BranchSide:      'lib/svec.c:363,18'
              BranchSideFuncs:
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_put_char.1733
                - vlog
                - vlog
        - Branch String:   'lib/svec.c:345,17'
          Branch Sides:
            - BranchSide:      'lib/svec.c:346,23'
              BranchSideFuncs:
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - vlog
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_put_char.1733
                - vlog
            - BranchSide:      'lib/svec.c:347,25'
              BranchSideFuncs:
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - vlog
                - ds_put_char.1733
                - vlog
        - Branch String:   'lib/svec.c:347,35'
          Branch Sides:
            - BranchSide:      'lib/svec.c:347,39'
              BranchSideFuncs:
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - vlog
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_put_char.1733
                - vlog
            - BranchSide:      'lib/svec.c:348,26'
              BranchSideFuncs:
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - vlog
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_put_char.1733
                - vlog
        - Branch String:   'lib/svec.c:347,24'
          Branch Sides:
            - BranchSide:      'lib/svec.c:348,26'
              BranchSideFuncs:
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - vlog
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_put_char.1733
                - vlog
            - BranchSide:      'lib/svec.c:349,25'
              BranchSideFuncs:
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - vlog
                - ds_put_char.1733
                - vlog
        - Branch String:   'lib/svec.c:349,35'
          Branch Sides:
            - BranchSide:      'lib/svec.c:349,40'
              BranchSideFuncs:
                - ds_put_char.1733
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - vlog
                - __ctype_b_loc
                - ds_put_char.1733
                - vlog
            - BranchSide:      'lib/svec.c:356,24'
              BranchSideFuncs:
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - vlog
                - ds_put_char.1733
                - vlog
        - Branch String:   'lib/svec.c:349,46'
          Branch Sides:
            - BranchSide:      'lib/svec.c:349,49'
              BranchSideFuncs:
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - vlog
                - ds_put_char.1733
                - vlog
            - BranchSide:      'lib/svec.c:350,18'
              BranchSideFuncs:
                - ds_put_char.1733
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - vlog
                - __ctype_b_loc
                - ds_put_char.1733
                - vlog
        - Branch String:   'lib/svec.c:349,24'
          Branch Sides:
            - BranchSide:      'lib/svec.c:350,18'
              BranchSideFuncs:
                - ds_put_char.1733
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - vlog
                - __ctype_b_loc
                - ds_put_char.1733
                - vlog
            - BranchSide:      'lib/svec.c:356,24'
              BranchSideFuncs:
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - vlog
                - ds_put_char.1733
                - vlog
        - Branch String:   'lib/svec.c:351,21'
          Branch Sides:
            - BranchSide:      'lib/svec.c:352,21'
              BranchSideFuncs:
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_put_char.1733
                - vlog
                - vlog
            - BranchSide:      'lib/svec.c:355,37'
              BranchSideFuncs:
                - ds_put_char.1733
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - vlog
                - __ctype_b_loc
                - ds_put_char.1733
                - vlog
        - Branch String:   'lib/svec.c:352,21'
          Branch Sides:
            - BranchSide:      'lib/svec.c:352,21'
              BranchSideFuncs:
                - vlog
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_put_char.1733
                - vlog
            - BranchSide:      'lib/svec.c:353,21'
              BranchSideFuncs:
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_put_char.1733
                - vlog
                - vlog
        - Branch String:   'lib/svec.c:356,52'
          Branch Sides:
            - BranchSide:      'lib/svec.c:356,56'
              BranchSideFuncs:
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_put_char.1733
                - vlog
                - vlog
            - BranchSide:      'lib/svec.c:360,37'
              BranchSideFuncs:
                - ds_put_char.1733
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - vlog
                - __ctype_b_loc
                - ds_put_char.1733
                - vlog
        - Branch String:   'lib/svec.c:356,24'
          Branch Sides:
            - BranchSide:      'lib/svec.c:357,18'
              BranchSideFuncs:
                - ds_put_char.1733
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - vlog
                - __ctype_b_loc
                - ds_put_char.1733
                - vlog
            - BranchSide:      'lib/svec.c:360,37'
              BranchSideFuncs:
                - ds_put_char.1733
                - ds_cstr
                - svec_add
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - vlog
                - __ctype_b_loc
                - ds_put_char.1733
                - vlog
        - Branch String:   'lib/svec.c:364,13'
          Branch Sides:
            - BranchSide:      'lib/svec.c:365,13'
              BranchSideFuncs:
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - ds_cstr
                - svec_add
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_put_char.1733
                - vlog
                - vlog
            - BranchSide:      'lib/svec.c:367,5'
              BranchSideFuncs:
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - ds_cstr
                - svec_add
                - vlog
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_put_char.1733
                - vlog
        - Branch String:   'lib/svec.c:365,13'
          Branch Sides:
            - BranchSide:      'lib/svec.c:365,13'
              BranchSideFuncs:
                - vlog
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - ds_cstr
                - svec_add
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_put_char.1733
                - vlog
            - BranchSide:      'lib/svec.c:366,9'
              BranchSideFuncs:
                - ds_destroy
                - __ctype_b_loc
                - ds_clear
                - ds_cstr
                - svec_add
                - vlog
                - __ctype_b_loc
                - ds_put_char.1733
                - ds_put_char.1733
                - vlog
      Callsites:
        - Src:             'lib/svec.c:336,16'
          Dst:             __ctype_b_loc
        - Src:             'lib/svec.c:343,9'
          Dst:             ds_clear
        - Src:             'lib/svec.c:352,21'
          Dst:             vlog
        - Src:             'lib/svec.c:355,17'
          Dst:             ds_put_char
        - Src:             'lib/svec.c:356,24'
          Dst:             __ctype_b_loc
        - Src:             'lib/svec.c:360,17'
          Dst:             ds_put_char
        - Src:             'lib/svec.c:363,24'
          Dst:             ds_cstr
        - Src:             'lib/svec.c:363,9'
          Dst:             svec_add
        - Src:             'lib/svec.c:365,13'
          Dst:             vlog
        - Src:             'lib/svec.c:368,5'
          Dst:             ds_destroy
    - functionName:    svec_add
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
        - name
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - svec_add_nocopy
        - xstrdup
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:71,27'
          Dst:             xstrdup
        - Src:             'lib/svec.c:71,5'
          Dst:             svec_add_nocopy
    - functionName:    svec_add_nocopy
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
        - name
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - svec_expand
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:100,5'
          Dst:             svec_expand
    - functionName:    svec_expand
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - x2nrealloc
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/svec.c:91,9'
          Branch Sides:
            - BranchSide:      'lib/svec.c:91,9'
              BranchSideFuncs:
                - x2nrealloc
            - BranchSide:      'lib/svec.c:92,34'
              BranchSideFuncs:
                - x2nrealloc
      Callsites:
        - Src:             'lib/svec.c:92,23'
          Dst:             x2nrealloc
    - functionName:    svec_print
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
        - title
      BBCount:         7
      ICount:          48
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - printf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/svec.c:320,5'
          Branch Sides:
            - BranchSide:      'lib/svec.c:321,28'
              BranchSideFuncs:
                - printf
            - BranchSide:      'lib/svec.c:323,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/svec.c:319,5'
          Dst:             printf
        - Src:             'lib/svec.c:321,9'
          Dst:             printf
    - functionName:    svec_get_duplicate
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
      BBCount:         13
      ICount:          81
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
        - svec_is_sorted
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/svec.c:295,9'
          Branch Sides:
            - BranchSide:      'lib/svec.c:297,16'
              BranchSideFuncs:
                - strcmp
            - BranchSide:      'lib/svec.c:303,5'
              BranchSideFuncs: []
        - Branch String:   'lib/svec.c:297,9'
          Branch Sides:
            - BranchSide:      'lib/svec.c:298,25'
              BranchSideFuncs:
                - strcmp
            - BranchSide:      'lib/svec.c:302,5'
              BranchSideFuncs: []
        - Branch String:   'lib/svec.c:298,17'
          Branch Sides:
            - BranchSide:      'lib/svec.c:299,24'
              BranchSideFuncs:
                - strcmp
            - BranchSide:      'lib/svec.c:301,9'
              BranchSideFuncs:
                - strcmp
      Callsites:
        - Src:             'lib/svec.c:294,5'
          Dst:             svec_is_sorted
        - Src:             'lib/svec.c:298,18'
          Dst:             strcmp
    - functionName:    svec_is_sorted
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
      BBCount:         10
      ICount:          62
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/svec.c:277,5'
          Branch Sides:
            - BranchSide:      'lib/svec.c:278,20'
              BranchSideFuncs:
                - strcmp
            - BranchSide:      'lib/svec.c:282,5'
              BranchSideFuncs: []
        - Branch String:   'lib/svec.c:278,13'
          Branch Sides:
            - BranchSide:      'lib/svec.c:279,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/svec.c:281,5'
              BranchSideFuncs:
                - strcmp
      Callsites:
        - Src:             'lib/svec.c:278,13'
          Dst:             strcmp
    - functionName:    svec_is_unique
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - svec_get_duplicate
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:288,12'
          Dst:             svec_get_duplicate
    - functionName:    svec_contains_unsorted
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
        - name
      BBCount:         10
      ICount:          59
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/svec.c:253,5'
          Branch Sides:
            - BranchSide:      'lib/svec.c:254,21'
              BranchSideFuncs:
                - strcmp
            - BranchSide:      'lib/svec.c:258,5'
              BranchSideFuncs: []
        - Branch String:   'lib/svec.c:254,13'
          Branch Sides:
            - BranchSide:      'lib/svec.c:255,13'
              BranchSideFuncs:
                - strcmp
            - BranchSide:      'lib/svec.c:257,5'
              BranchSideFuncs:
                - strcmp
      Callsites:
        - Src:             'lib/svec.c:254,14'
          Dst:             strcmp
    - functionName:    svec_contains
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
        - name
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - svec_find
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:247,12'
          Dst:             svec_find
    - functionName:    svec_find
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
        - name
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - bsearch
        - compare_strings
        - svec_is_sorted
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/svec.c:269,12'
          Branch Sides:
            - BranchSide:      'lib/svec.c:269,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/svec.c:269,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/svec.c:266,5'
          Dst:             svec_is_sorted
        - Src:             'lib/svec.c:267,9'
          Dst:             bsearch
        - Src:             'lib/svec.c:267,9'
          Dst:             compare_strings
    - functionName:    compare_strings
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a_
        - b_
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:125,12'
          Dst:             strcmp
    - functionName:    bsearch
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    svec_diff
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
        - a_only
        - both
        - b_only
      BBCount:         47
      ICount:          267
      EdgeCount:       61
      CyclomaticComplexity: 16
      functionsReached:
        - strcmp
        - svec_add
        - svec_init
        - svec_is_sorted
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/svec.c:203,9'
          Branch Sides:
            - BranchSide:      'lib/svec.c:204,19'
              BranchSideFuncs:
                - svec_init
                - svec_add
                - svec_add
                - strcmp
                - svec_add
                - svec_add
                - svec_add
                - svec_init
                - svec_init
            - BranchSide:      'lib/svec.c:206,9'
              BranchSideFuncs:
                - svec_add
                - svec_add
                - strcmp
                - svec_add
                - svec_add
                - svec_add
                - svec_init
                - svec_init
        - Branch String:   'lib/svec.c:206,9'
          Branch Sides:
            - BranchSide:      'lib/svec.c:207,19'
              BranchSideFuncs:
                - svec_init
                - svec_add
                - svec_add
                - strcmp
                - svec_add
                - svec_add
                - svec_add
                - svec_init
            - BranchSide:      'lib/svec.c:209,9'
              BranchSideFuncs:
                - svec_add
                - svec_add
                - strcmp
                - svec_add
                - svec_add
                - svec_add
                - svec_init
        - Branch String:   'lib/svec.c:209,9'
          Branch Sides:
            - BranchSide:      'lib/svec.c:210,19'
              BranchSideFuncs:
                - svec_init
                - svec_add
                - svec_add
                - strcmp
                - svec_add
                - svec_add
                - svec_add
            - BranchSide:      'lib/svec.c:212,16'
              BranchSideFuncs:
                - svec_add
                - svec_add
                - strcmp
                - svec_add
                - svec_add
                - svec_add
        - Branch String:   'lib/svec.c:212,30'
          Branch Sides:
            - BranchSide:      'lib/svec.c:212,33'
              BranchSideFuncs:
                - svec_add
                - svec_add
                - strcmp
                - svec_add
                - svec_add
                - svec_add
            - BranchSide:      'lib/svec.c:212,5'
              BranchSideFuncs:
                - svec_add
                - svec_add
                - strcmp
                - svec_add
                - svec_add
                - svec_add
        - Branch String:   'lib/svec.c:212,5'
          Branch Sides:
            - BranchSide:      'lib/svec.c:213,26'
              BranchSideFuncs:
                - strcmp
                - svec_add
                - svec_add
                - svec_add
                - svec_add
                - svec_add
            - BranchSide:      'lib/svec.c:232,9'
              BranchSideFuncs:
                - svec_add
                - svec_add
        - Branch String:   'lib/svec.c:214,13'
          Branch Sides:
            - BranchSide:      'lib/svec.c:215,17'
              BranchSideFuncs:
                - svec_add
                - svec_add
                - strcmp
                - svec_add
                - svec_add
                - svec_add
            - BranchSide:      'lib/svec.c:219,20'
              BranchSideFuncs:
                - svec_add
                - svec_add
                - strcmp
                - svec_add
                - svec_add
                - svec_add
        - Branch String:   'lib/svec.c:215,17'
          Branch Sides:
            - BranchSide:      'lib/svec.c:216,26'
              BranchSideFuncs:
                - svec_add
                - svec_add
                - svec_add
                - strcmp
                - svec_add
                - svec_add
            - BranchSide:      'lib/svec.c:218,14'
              BranchSideFuncs:
                - svec_add
                - svec_add
                - strcmp
                - svec_add
                - svec_add
                - svec_add
        - Branch String:   'lib/svec.c:219,20'
          Branch Sides:
            - BranchSide:      'lib/svec.c:220,17'
              BranchSideFuncs:
                - svec_add
                - svec_add
                - strcmp
                - svec_add
                - svec_add
                - svec_add
            - BranchSide:      'lib/svec.c:225,17'
              BranchSideFuncs:
                - svec_add
                - svec_add
                - strcmp
                - svec_add
                - svec_add
                - svec_add
        - Branch String:   'lib/svec.c:220,17'
          Branch Sides:
            - BranchSide:      'lib/svec.c:221,26'
              BranchSideFuncs:
                - svec_add
                - svec_add
                - svec_add
                - strcmp
                - svec_add
                - svec_add
            - BranchSide:      'lib/svec.c:223,14'
              BranchSideFuncs:
                - svec_add
                - svec_add
                - strcmp
                - svec_add
                - svec_add
                - svec_add
        - Branch String:   'lib/svec.c:225,17'
          Branch Sides:
            - BranchSide:      'lib/svec.c:226,26'
              BranchSideFuncs:
                - svec_add
                - svec_add
                - svec_add
                - strcmp
                - svec_add
                - svec_add
            - BranchSide:      'lib/svec.c:228,14'
              BranchSideFuncs:
                - svec_add
                - svec_add
                - strcmp
                - svec_add
                - svec_add
                - svec_add
        - Branch String:   'lib/svec.c:232,9'
          Branch Sides:
            - BranchSide:      'lib/svec.c:233,9'
              BranchSideFuncs:
                - svec_add
                - svec_add
            - BranchSide:      'lib/svec.c:237,9'
              BranchSideFuncs:
                - svec_add
        - Branch String:   'lib/svec.c:233,9'
          Branch Sides:
            - BranchSide:      'lib/svec.c:234,22'
              BranchSideFuncs:
                - svec_add
                - svec_add
            - BranchSide:      'lib/svec.c:236,5'
              BranchSideFuncs:
                - svec_add
        - Branch String:   'lib/svec.c:237,9'
          Branch Sides:
            - BranchSide:      'lib/svec.c:237,9'
              BranchSideFuncs:
                - svec_add
            - BranchSide:      'lib/svec.c:238,9'
              BranchSideFuncs:
                - svec_add
        - Branch String:   'lib/svec.c:238,9'
          Branch Sides:
            - BranchSide:      'lib/svec.c:239,22'
              BranchSideFuncs:
                - svec_add
            - BranchSide:      'lib/svec.c:241,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/svec.c:201,5'
          Dst:             svec_is_sorted
        - Src:             'lib/svec.c:202,5'
          Dst:             svec_is_sorted
        - Src:             'lib/svec.c:204,9'
          Dst:             svec_init
        - Src:             'lib/svec.c:207,9'
          Dst:             svec_init
        - Src:             'lib/svec.c:210,9'
          Dst:             svec_init
        - Src:             'lib/svec.c:213,19'
          Dst:             strcmp
        - Src:             'lib/svec.c:216,17'
          Dst:             svec_add
        - Src:             'lib/svec.c:221,17'
          Dst:             svec_add
        - Src:             'lib/svec.c:226,17'
          Dst:             svec_add
        - Src:             'lib/svec.c:234,13'
          Dst:             svec_add
        - Src:             'lib/svec.c:239,13'
          Dst:             svec_add
    - functionName:    svec_init
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    swap_strings
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    random_range
      functionSourceFile: '/src/openvswitch/lib/random.h'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - max
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - random_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/random.h:33,12'
          Dst:             random_uint32
    - functionName:    svec_shuffle
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
      BBCount:         7
      ICount:          60
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - random_range
        - swap_strings
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/svec.c:189,5'
          Branch Sides:
            - BranchSide:      'lib/svec.c:190,20'
              BranchSideFuncs:
                - random_range
                - swap_strings
            - BranchSide:      'lib/svec.c:193,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/svec.c:190,24'
          Dst:             random_range
        - Src:             'lib/svec.c:191,9'
          Dst:             swap_strings
    - functionName:    svec_compact
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
      BBCount:         8
      ICount:          66
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/svec.c:170,5'
          Branch Sides:
            - BranchSide:      'lib/svec.c:171,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/svec.c:175,15'
              BranchSideFuncs: []
        - Branch String:   'lib/svec.c:171,13'
          Branch Sides:
            - BranchSide:      'lib/svec.c:172,32'
              BranchSideFuncs: []
            - BranchSide:      'lib/svec.c:174,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    svec_swap
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    svec_unique
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
      BBCount:         13
      ICount:          93
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - strcmp
        - svec_add
        - svec_destroy
        - svec_init
        - svec_is_sorted
        - svec_swap
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/svec.c:147,9'
          Branch Sides:
            - BranchSide:      'lib/svec.c:147,9'
              BranchSideFuncs:
                - svec_init
                - svec_add
                - svec_swap
                - svec_destroy
                - strcmp
                - svec_add
            - BranchSide:      'lib/svec.c:153,9'
              BranchSideFuncs:
                - svec_init
                - svec_add
                - svec_swap
                - svec_destroy
                - strcmp
                - svec_add
        - Branch String:   'lib/svec.c:155,9'
          Branch Sides:
            - BranchSide:      'lib/svec.c:156,24'
              BranchSideFuncs:
                - strcmp
                - svec_swap
                - svec_destroy
                - svec_add
            - BranchSide:      'lib/svec.c:160,25'
              BranchSideFuncs:
                - svec_swap
                - svec_destroy
        - Branch String:   'lib/svec.c:156,17'
          Branch Sides:
            - BranchSide:      'lib/svec.c:157,32'
              BranchSideFuncs:
                - svec_add
                - svec_swap
                - svec_destroy
                - strcmp
            - BranchSide:      'lib/svec.c:159,9'
              BranchSideFuncs:
                - svec_swap
                - svec_destroy
                - strcmp
                - svec_add
      Callsites:
        - Src:             'lib/svec.c:146,5'
          Dst:             svec_is_sorted
        - Src:             'lib/svec.c:153,9'
          Dst:             svec_init
        - Src:             'lib/svec.c:154,9'
          Dst:             svec_add
        - Src:             'lib/svec.c:156,17'
          Dst:             strcmp
        - Src:             'lib/svec.c:157,17'
          Dst:             svec_add
        - Src:             'lib/svec.c:160,9'
          Dst:             svec_swap
        - Src:             'lib/svec.c:161,9'
          Dst:             svec_destroy
    - functionName:    svec_destroy
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - svec_clear
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:47,5'
          Dst:             svec_clear
    - functionName:    svec_clear
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
      BBCount:         7
      ICount:          46
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/svec.c:56,5'
          Branch Sides:
            - BranchSide:      'lib/svec.c:57,14'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/svec.c:59,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    svec_sort_unique
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 138
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - svec_sort
        - svec_unique
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:139,5'
          Dst:             svec_sort
        - Src:             'lib/svec.c:140,5'
          Dst:             svec_unique
    - functionName:    svec_sort
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - compare_strings
        - qsort
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/svec.c:131,9'
          Branch Sides:
            - BranchSide:      'lib/svec.c:131,9'
              BranchSideFuncs:
                - qsort
            - BranchSide:      'lib/svec.c:132,15'
              BranchSideFuncs:
                - qsort
      Callsites:
        - Src:             'lib/svec.c:132,9'
          Dst:             qsort
        - Src:             'lib/svec.c:132,9'
          Dst:             compare_strings
    - functionName:    svec_terminate
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - svec_expand
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:116,5'
          Dst:             svec_expand
    - functionName:    svec_del
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
        - name
      BBCount:         6
      ICount:          66
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - svec_find
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/svec.c:80,9'
          Branch Sides:
            - BranchSide:      'lib/svec.c:80,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/svec.c:81,14'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'lib/svec.c:79,14'
          Dst:             svec_find
    - functionName:    svec_is_empty
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    svec_append
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
        - other
      BBCount:         7
      ICount:          47
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - svec_add
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/svec.c:108,5'
          Branch Sides:
            - BranchSide:      'lib/svec.c:109,18'
              BranchSideFuncs:
                - svec_add
            - BranchSide:      'lib/svec.c:111,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/svec.c:109,9'
          Dst:             svec_add
    - functionName:    svec_clone
      functionSourceFile: '/src/openvswitch/lib/svec.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - svec
        - other
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - svec_append
        - svec_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/svec.c:40,5'
          Dst:             svec_init
        - Src:             'lib/svec.c:41,5'
          Dst:             svec_append
    - functionName:    init_this_module_timeval
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/timeval.c:42,1'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:42,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/timeval.c:42,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/timeval.c:42,1'
          Dst:             vlog_insert_module
    - functionName:    long_poll_interval_init_coverage
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/timeval.c:44,1'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:44,1'
              BranchSideFuncs:
                - coverage_counter_register
            - BranchSide:      'lib/timeval.c:44,1'
              BranchSideFuncs:
                - coverage_counter_register
      Callsites:
        - Src:             'lib/timeval.c:44,1'
          Dst:             coverage_counter_register
    - functionName:    long_poll_interval_count
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_long_poll_interval_get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/timeval.c:44,1'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:44,1'
              BranchSideFuncs:
                - counter_long_poll_interval_get
            - BranchSide:      'lib/timeval.c:44,1'
              BranchSideFuncs:
                - counter_long_poll_interval_get
      Callsites:
        - Src:             'lib/timeval.c:44,1'
          Dst:             counter_long_poll_interval_get
    - functionName:    counter_long_poll_interval_get
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_long_poll_interval_get_unsafe
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/timeval.c:44,1'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:44,1'
              BranchSideFuncs:
                - counter_long_poll_interval_get_unsafe
            - BranchSide:      'lib/timeval.c:44,1'
              BranchSideFuncs:
                - counter_long_poll_interval_get_unsafe
      Callsites:
        - Src:             'lib/timeval.c:44,1'
          Dst:             counter_long_poll_interval_get_unsafe
    - functionName:    counter_long_poll_interval_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cpu_tracker_var_once_init
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 699
      functionLinenumberEnd: 699
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         5
      ICount:          23
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - abort
        - pthread_key_create
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/timeval.c:699,1'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:699,1'
              BranchSideFuncs:
                - pthread_key_create
                - abort
            - BranchSide:      'lib/timeval.c:699,1'
              BranchSideFuncs:
                - pthread_key_create
                - abort
        - Branch String:   'lib/timeval.c:699,1'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:699,1'
              BranchSideFuncs:
                - abort
            - BranchSide:      'lib/timeval.c:699,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/timeval.c:699,1'
          Dst:             pthread_key_create
        - Src:             'lib/timeval.c:699,1'
          Dst:             abort
    - functionName:    cpu_tracker_var_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 699
      functionLinenumberEnd: 699
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_getspecific
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/timeval.c:699,1'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:699,1'
              BranchSideFuncs:
                - pthread_getspecific
            - BranchSide:      'lib/timeval.c:699,1'
              BranchSideFuncs:
                - pthread_getspecific
      Callsites:
        - Src:             'lib/timeval.c:699,1'
          Dst:             pthread_getspecific
    - functionName:    cpu_tracker_var_init
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 699
      functionLinenumberEnd: 699
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cpu_tracker_var_once_init
        - pthread_once
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/timeval.c:699,1'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:699,1'
              BranchSideFuncs:
                - pthread_once
            - BranchSide:      'lib/timeval.c:699,1'
              BranchSideFuncs:
                - pthread_once
      Callsites:
        - Src:             'lib/timeval.c:699,1'
          Dst:             pthread_once
        - Src:             'lib/timeval.c:699,1'
          Dst:             cpu_tracker_var_once_init
    - functionName:    pthread_once
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cpu_tracker_var_set_unsafe
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 699
      functionLinenumberEnd: 699
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - value
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cpu_tracker_var_get_unsafe
        - xpthread_setspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:699,1'
          Dst:             cpu_tracker_var_get_unsafe
        - Src:             'lib/timeval.c:699,1'
          Dst:             xpthread_setspecific
    - functionName:    cpu_tracker_var_get
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 699
      functionLinenumberEnd: 699
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - cpu_tracker_var_get_unsafe
        - cpu_tracker_var_init
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/timeval.c:699,1'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:699,1'
              BranchSideFuncs:
                - cpu_tracker_var_init
                - cpu_tracker_var_get_unsafe
            - BranchSide:      'lib/timeval.c:699,1'
              BranchSideFuncs:
                - cpu_tracker_var_init
                - cpu_tracker_var_get_unsafe
      Callsites:
        - Src:             'lib/timeval.c:699,1'
          Dst:             cpu_tracker_var_init
        - Src:             'lib/timeval.c:699,1'
          Dst:             cpu_tracker_var_get_unsafe
    - functionName:    timeval_diff_msec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 607
      functionLinenumberEnd: 608
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - timeval_to_msec
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:608,12'
          Dst:             timeval_to_msec
        - Src:             'lib/timeval.c:608,33'
          Dst:             timeval_to_msec
    - functionName:    timeval_to_msec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 382
      functionLinenumberEnd: 383
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - tv
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getrusage_thread
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 722
      functionLinenumberEnd: 724
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - rusage
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getrusage
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:724,12'
          Dst:             getrusage
    - functionName:    getrusage
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    long_poll_interval_add
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - n
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_long_poll_interval_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:44,1'
          Dst:             counter_long_poll_interval_get
    - functionName:    get_recent_rusage
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 716
      functionLinenumberEnd: 717
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_cpu_tracker
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/timeval.c:717,13'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:717,13'
              BranchSideFuncs:
                - get_cpu_tracker
            - BranchSide:      'lib/timeval.c:717,13'
              BranchSideFuncs:
                - get_cpu_tracker
      Callsites:
        - Src:             'lib/timeval.c:717,13'
          Dst:             get_cpu_tracker
    - functionName:    get_cpu_tracker
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 703
      functionLinenumberEnd: 711
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - cpu_tracker_var_get
        - cpu_tracker_var_set_unsafe
        - xzalloc
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/timeval.c:704,29'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:704,25'
              BranchSideFuncs:
                - cpu_tracker_var_get
                - xzalloc
                - cpu_tracker_var_set_unsafe
            - BranchSide:      'lib/timeval.c:704,29'
              BranchSideFuncs:
                - cpu_tracker_var_get
                - xzalloc
                - cpu_tracker_var_set_unsafe
        - Branch String:   'lib/timeval.c:705,9'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:705,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/timeval.c:706,13'
              BranchSideFuncs:
                - xzalloc
                - cpu_tracker_var_set_unsafe
      Callsites:
        - Src:             'lib/timeval.c:704,29'
          Dst:             cpu_tracker_var_get
        - Src:             'lib/timeval.c:706,13'
          Dst:             xzalloc
        - Src:             'lib/timeval.c:709,9'
          Dst:             cpu_tracker_var_set_unsafe
    - functionName:    is_warped
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 630
      functionLinenumberEnd: 637
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - c
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/timeval.c:634,42'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:634,42'
              BranchSideFuncs:
                - ovs_mutex_unlock
            - BranchSide:      'lib/timeval.c:634,66'
              BranchSideFuncs:
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/timeval.c:633,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/timeval.c:635,5'
          Dst:             ovs_mutex_unlock
    - functionName:    last_seq_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_id_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_id_get
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsthread_id_get_unsafe
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.h:458,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.h:458,1'
              BranchSideFuncs:
                - ovsthread_id_get_unsafe.1880
            - BranchSide:      'lib/ovs-thread.h:458,1'
              BranchSideFuncs:
                - ovsthread_id_get_unsafe.1880
      Callsites:
        - Src:             'lib/ovs-thread.h:458,1'
          Dst:             ovsthread_id_get_unsafe
    - functionName:    last_wakeup_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_clock
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - c
        - id
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_init
        - xclock_gettime
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:120,5'
          Dst:             ovs_mutex_init
        - Src:             'lib/timeval.c:122,5'
          Dst:             xclock_gettime
    - functionName:    xclock_gettime
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 504
      functionLinenumberEnd: 510
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - id
        - ts
      BBCount:         5
      ICount:          34
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - clock_gettime
        - ovs_abort
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/timeval.c:505,9'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:508,19'
              BranchSideFuncs:
                - __errno_location
                - ovs_abort
            - BranchSide:      'lib/timeval.c:510,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/timeval.c:505,9'
          Dst:             clock_gettime
        - Src:             'lib/timeval.c:508,19'
          Dst:             __errno_location
        - Src:             'lib/timeval.c:508,9'
          Dst:             ovs_abort
    - functionName:    clock_gettime
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    do_init_time
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - clock_gettime
        - coverage_init
        - init_clock
        - seq_create
        - timespec_to_msec
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/timeval.c:130,5'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:128,21'
              BranchSideFuncs:
                - coverage_init
                - seq_create
                - clock_gettime
                - init_clock
                - init_clock
                - timespec_to_msec
            - BranchSide:      'lib/timeval.c:130,5'
              BranchSideFuncs:
                - coverage_init
                - seq_create
                - clock_gettime
                - init_clock
                - init_clock
                - timespec_to_msec
      Callsites:
        - Src:             'lib/timeval.c:130,5'
          Dst:             coverage_init
        - Src:             'lib/timeval.c:132,20'
          Dst:             seq_create
        - Src:             'lib/timeval.c:133,36'
          Dst:             clock_gettime
        - Src:             'lib/timeval.c:133,5'
          Dst:             init_clock
        - Src:             'lib/timeval.c:136,5'
          Dst:             init_clock
        - Src:             'lib/timeval.c:137,17'
          Dst:             timespec_to_msec
    - functionName:    timespec_to_msec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ts
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gmtime_msec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 891
      functionLinenumberEnd: 895
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - now
        - result
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - gmtime_r
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:893,3'
          Dst:             gmtime_r
    - functionName:    gmtime_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    localtime_msec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 882
      functionLinenumberEnd: 886
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - now
        - result
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - localtime_r
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:884,3'
          Dst:             localtime_r
    - functionName:    localtime_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strftime_msec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 858
      functionLinenumberEnd: 877
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - max
        - format
        - tm
      BBCount:         19
      ICount:          119
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - sprintf
        - strchr
        - strftime
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/timeval.c:863,9'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:863,24'
              BranchSideFuncs:
                - strftime
                - sprintf
                - strchr
                - strchr
            - BranchSide:      'lib/timeval.c:863,7'
              BranchSideFuncs:
                - sprintf
                - strchr
                - strchr
        - Branch String:   'lib/timeval.c:864,9'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:864,9'
              BranchSideFuncs:
                - sprintf
                - strchr
                - strchr
            - BranchSide:      'lib/timeval.c:868,17'
              BranchSideFuncs:
                - sprintf
                - strchr
                - strchr
        - Branch String:   'lib/timeval.c:869,9'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:870,23'
              BranchSideFuncs:
                - strchr
            - BranchSide:      'lib/timeval.c:875,5'
              BranchSideFuncs: []
        - Branch String:   'lib/timeval.c:871,13'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:872,25'
              BranchSideFuncs:
                - strchr
            - BranchSide:      'lib/timeval.c:874,9'
              BranchSideFuncs:
                - strchr
        - Branch String:   'lib/timeval.c:872,24'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:871,21'
              BranchSideFuncs:
                - strchr
            - BranchSide:      'lib/timeval.c:872,31'
              BranchSideFuncs:
                - strchr
      Callsites:
        - Src:             'lib/timeval.c:863,15'
          Dst:             strftime
        - Src:             'lib/timeval.c:868,9'
          Dst:             sprintf
        - Src:             'lib/timeval.c:869,18'
          Dst:             strchr
        - Src:             'lib/timeval.c:869,41'
          Dst:             strchr
    - functionName:    strftime
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    timeval_warp_cb
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 802
      functionLinenumberEnd: 824
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
        - argc
        - argv
        - aux
      BBCount:         17
      ICount:          115
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - atoll
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovsthread_id_self
        - timewarp_work
        - unixctl_command_reply_error
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/timeval.c:803,32'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:803,49'
              BranchSideFuncs:
                - atoll
                - atoll
                - ovs_mutex_lock_at
                - ovsthread_id_self.1887
                - ovs_mutex_unlock
                - timewarp_work
                - ovs_mutex_unlock
                - unixctl_command_reply_error
                - unixctl_command_reply_error
                - atoll
            - BranchSide:      'lib/timeval.c:803,19'
              BranchSideFuncs:
                - atoll
                - ovs_mutex_lock_at
                - ovsthread_id_self.1887
                - ovs_mutex_unlock
                - timewarp_work
                - ovs_mutex_unlock
                - unixctl_command_reply_error
                - unixctl_command_reply_error
                - atoll
        - Branch String:   'lib/timeval.c:804,27'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:804,44'
              BranchSideFuncs:
                - atoll
                - ovs_mutex_lock_at
                - ovsthread_id_self.1887
                - ovs_mutex_unlock
                - timewarp_work
                - ovs_mutex_unlock
                - unixctl_command_reply_error
                - unixctl_command_reply_error
            - BranchSide:      'lib/timeval.c:804,61'
              BranchSideFuncs:
                - atoll
                - ovs_mutex_lock_at
                - ovsthread_id_self.1887
                - ovs_mutex_unlock
                - timewarp_work
                - ovs_mutex_unlock
                - unixctl_command_reply_error
                - unixctl_command_reply_error
        - Branch String:   'lib/timeval.c:805,20'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:805,23'
              BranchSideFuncs:
                - unixctl_command_reply_error
            - BranchSide:      'lib/timeval.c:806,37'
              BranchSideFuncs:
                - unixctl_command_reply_error
        - Branch String:   'lib/timeval.c:805,9'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:806,37'
              BranchSideFuncs:
                - unixctl_command_reply_error
            - BranchSide:      'lib/timeval.c:810,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovsthread_id_self.1887
                - ovs_mutex_unlock
                - timewarp_work
                - ovs_mutex_unlock
                - unixctl_command_reply_error
        - Branch String:   'lib/timeval.c:811,9'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:812,9'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - unixctl_command_reply_error
            - BranchSide:      'lib/timeval.c:816,5'
              BranchSideFuncs:
                - ovsthread_id_self.1887
                - ovs_mutex_unlock
                - timewarp_work
      Callsites:
        - Src:             'lib/timeval.c:803,43'
          Dst:             atoll
        - Src:             'lib/timeval.c:804,38'
          Dst:             atoll
        - Src:             'lib/timeval.c:804,55'
          Dst:             atoll
        - Src:             'lib/timeval.c:806,9'
          Dst:             unixctl_command_reply_error
        - Src:             'lib/timeval.c:810,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/timeval.c:812,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/timeval.c:813,9'
          Dst:             unixctl_command_reply_error
        - Src:             'lib/timeval.c:820,49'
          Dst:             ovsthread_id_self
        - Src:             'lib/timeval.c:821,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/timeval.c:823,5'
          Dst:             timewarp_work
    - functionName:    atoll
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_id_self
      functionSourceFile: '/src/openvswitch/lib/ovs-thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_id_get
        - ovsthread_id_init
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/ovs-thread.h:468,24'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.h:468,18'
              BranchSideFuncs:
                - ovsthread_id_get.1881
                - ovsthread_id_init
            - BranchSide:      'lib/ovs-thread.h:468,24'
              BranchSideFuncs:
                - ovsthread_id_get.1881
                - ovsthread_id_init
        - Branch String:   'lib/ovs-thread.h:470,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-thread.h:470,9'
              BranchSideFuncs:
                - ovsthread_id_init
            - BranchSide:      'lib/ovs-thread.h:471,14'
              BranchSideFuncs:
                - ovsthread_id_init
      Callsites:
        - Src:             'lib/ovs-thread.h:468,24'
          Dst:             ovsthread_id_get
        - Src:             'lib/ovs-thread.h:471,14'
          Dst:             ovsthread_id_init
    - functionName:    timewarp_work
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 540
      functionLinenumberEnd: 578
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          138
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - msec_to_timespec
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - poll
        - seq_change
        - timespec_add
        - unixctl_command_reply
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/timeval.c:541,19'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:541,19'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - msec_to_timespec
                - timespec_add
                - unixctl_command_reply
                - ovs_mutex_unlock
                - seq_change
                - poll
                - msec_to_timespec
                - timespec_add
                - msec_to_timespec
                - timespec_add
            - BranchSide:      'lib/timeval.c:541,19'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - msec_to_timespec
                - timespec_add
                - unixctl_command_reply
                - ovs_mutex_unlock
                - seq_change
                - poll
                - msec_to_timespec
                - timespec_add
                - msec_to_timespec
                - timespec_add
        - Branch String:   'lib/timeval.c:545,9'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:546,27'
              BranchSideFuncs:
                - msec_to_timespec
                - timespec_add
                - unixctl_command_reply
                - ovs_mutex_unlock
                - seq_change
                - poll
                - msec_to_timespec
                - timespec_add
                - msec_to_timespec
                - timespec_add
            - BranchSide:      'lib/timeval.c:550,9'
              BranchSideFuncs:
                - msec_to_timespec
                - timespec_add
                - unixctl_command_reply
                - ovs_mutex_unlock
                - seq_change
                - poll
                - msec_to_timespec
                - timespec_add
                - msec_to_timespec
                - timespec_add
        - Branch String:   'lib/timeval.c:550,9'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:551,26'
              BranchSideFuncs:
                - msec_to_timespec
                - timespec_add
                - unixctl_command_reply
                - ovs_mutex_unlock
                - seq_change
                - poll
            - BranchSide:      'lib/timeval.c:554,16'
              BranchSideFuncs:
                - msec_to_timespec
                - timespec_add
                - unixctl_command_reply
                - ovs_mutex_unlock
                - seq_change
                - poll
                - msec_to_timespec
                - timespec_add
        - Branch String:   'lib/timeval.c:554,16'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:555,26'
              BranchSideFuncs:
                - msec_to_timespec
                - timespec_add
                - unixctl_command_reply
                - ovs_mutex_unlock
                - seq_change
                - poll
            - BranchSide:      'lib/timeval.c:560,26'
              BranchSideFuncs:
                - msec_to_timespec
                - timespec_add
                - unixctl_command_reply
                - ovs_mutex_unlock
                - seq_change
                - poll
        - Branch String:   'lib/timeval.c:564,9'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:565,31'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - seq_change
                - poll
            - BranchSide:      'lib/timeval.c:569,23'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - seq_change
                - poll
      Callsites:
        - Src:             'lib/timeval.c:544,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/timeval.c:546,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/timeval.c:551,9'
          Dst:             msec_to_timespec
        - Src:             'lib/timeval.c:552,9'
          Dst:             timespec_add
        - Src:             'lib/timeval.c:555,9'
          Dst:             msec_to_timespec
        - Src:             'lib/timeval.c:556,9'
          Dst:             timespec_add
        - Src:             'lib/timeval.c:560,9'
          Dst:             msec_to_timespec
        - Src:             'lib/timeval.c:561,9'
          Dst:             timespec_add
        - Src:             'lib/timeval.c:565,9'
          Dst:             unixctl_command_reply
        - Src:             'lib/timeval.c:569,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/timeval.c:570,5'
          Dst:             seq_change
        - Src:             'lib/timeval.c:574,5'
          Dst:             poll
    - functionName:    msec_to_timespec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 514
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ms
        - ts
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    timespec_add
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 615
      functionLinenumberEnd: 626
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sum
        - a
        - b
      BBCount:         4
      ICount:          56
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/timeval.c:620,9'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:620,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/timeval.c:621,13'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    timeval_stop_cb
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 784
      functionLinenumberEnd: 787
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
        - argc
        - argv
        - aux
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - timeval_stop
        - unixctl_command_reply
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:785,5'
          Dst:             timeval_stop
        - Src:             'lib/timeval.c:786,5'
          Dst:             unixctl_command_reply
    - functionName:    timeval_stop
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 772
      functionLinenumberEnd: 778
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - xclock_gettime
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/timeval.c:773,5'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:773,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - xclock_gettime
                - ovs_mutex_unlock
            - BranchSide:      'lib/timeval.c:773,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - xclock_gettime
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/timeval.c:773,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/timeval.c:776,5'
          Dst:             xclock_gettime
        - Src:             'lib/timeval.c:777,5'
          Dst:             ovs_mutex_unlock
    - functionName:    timeval_dummy_register
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 843
      functionLinenumberEnd: 848
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - timeval_stop_cb
        - timeval_warp_cb
        - unixctl_command_register
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/timeval.c:844,22'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:844,22'
              BranchSideFuncs:
                - unixctl_command_register
                - unixctl_command_register
            - BranchSide:      'lib/timeval.c:844,22'
              BranchSideFuncs:
                - unixctl_command_register
                - unixctl_command_register
      Callsites:
        - Src:             'lib/timeval.c:845,5'
          Dst:             unixctl_command_register
        - Src:             'lib/timeval.c:845,5'
          Dst:             timeval_stop_cb
        - Src:             'lib/timeval.c:846,5'
          Dst:             unixctl_command_register
        - Src:             'lib/timeval.c:846,5'
          Dst:             timeval_warp_cb
    - functionName:    timeval_warp
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 830
      functionLinenumberEnd: 839
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - msecs
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - msec_to_timespec
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - timespec_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:834,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/timeval.c:836,5'
          Dst:             msec_to_timespec
        - Src:             'lib/timeval.c:837,5'
          Dst:             timespec_add
        - Src:             'lib/timeval.c:838,5'
          Dst:             ovs_mutex_unlock
    - functionName:    get_cpu_usage
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 762
      functionLinenumberEnd: 763
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_cpu_tracker
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/timeval.c:763,12'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:763,12'
              BranchSideFuncs:
                - get_cpu_tracker
            - BranchSide:      'lib/timeval.c:763,12'
              BranchSideFuncs:
                - get_cpu_tracker
      Callsites:
        - Src:             'lib/timeval.c:763,12'
          Dst:             get_cpu_tracker
    - functionName:    last_seq_get
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - last_seq_get_unsafe
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/timeval.c:98,1'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:98,1'
              BranchSideFuncs:
                - last_seq_get_unsafe
            - BranchSide:      'lib/timeval.c:98,1'
              BranchSideFuncs:
                - last_seq_get_unsafe
      Callsites:
        - Src:             'lib/timeval.c:98,1'
          Dst:             last_seq_get_unsafe
    - functionName:    timewarp_run
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 603
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - last_seq_get
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovsthread_id_self
        - seq_read
        - seq_wait_at
        - timewarp_work
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/timeval.c:585,9'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:585,9'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovsthread_id_self.1887
                - timewarp_work
                - last_seq_get
                - seq_read
                - seq_wait_at
            - BranchSide:      'lib/timeval.c:585,9'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovsthread_id_self.1887
                - timewarp_work
                - last_seq_get
                - seq_read
                - seq_wait_at
        - Branch String:   'lib/timeval.c:585,9'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:585,9'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovsthread_id_self.1887
                - timewarp_work
                - last_seq_get
                - seq_read
                - seq_wait_at
            - BranchSide:      'lib/timeval.c:587,9'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovsthread_id_self.1887
                - timewarp_work
                - last_seq_get
                - seq_read
                - seq_wait_at
        - Branch String:   'lib/timeval.c:591,13'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:594,34'
              BranchSideFuncs:
                - last_seq_get
                - seq_read
                - seq_wait_at
            - BranchSide:      'lib/timeval.c:600,13'
              BranchSideFuncs:
                - timewarp_work
      Callsites:
        - Src:             'lib/timeval.c:587,9'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/timeval.c:589,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/timeval.c:591,26'
          Dst:             ovsthread_id_self
        - Src:             'lib/timeval.c:594,34'
          Dst:             last_seq_get
        - Src:             'lib/timeval.c:596,25'
          Dst:             seq_read
        - Src:             'lib/timeval.c:597,13'
          Dst:             seq_wait_at
        - Src:             'lib/timeval.c:600,13'
          Dst:             timewarp_work
    - functionName:    nsec_to_timespec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 521
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - nsec
        - ts
      BBCount:         7
      ICount:          63
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/timeval.c:522,9'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:523,22'
              BranchSideFuncs: []
            - BranchSide:      'lib/timeval.c:526,18'
              BranchSideFuncs: []
        - Branch String:   'lib/timeval.c:530,9'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:531,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/timeval.c:535,19'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    xgettimeofday
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 488
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - tv
      BBCount:         5
      ICount:          30
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - gettimeofday
        - ovs_strerror
        - vlog_fatal
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/timeval.c:490,9'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:491,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/timeval.c:500,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/timeval.c:490,9'
          Dst:             gettimeofday
        - Src:             'lib/timeval.c:491,9'
          Dst:             __errno_location
        - Src:             'lib/timeval.c:491,9'
          Dst:             ovs_strerror
        - Src:             'lib/timeval.c:491,9'
          Dst:             vlog_fatal
    - functionName:    gettimeofday
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    time_boot_msec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_init
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/timeval.c:403,5'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:403,5'
              BranchSideFuncs:
                - time_init
            - BranchSide:      'lib/timeval.c:403,5'
              BranchSideFuncs:
                - time_init
      Callsites:
        - Src:             'lib/timeval.c:403,5'
          Dst:             time_init
    - functionName:    time_init
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - do_init_time
        - pthread_once
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/timeval.c:145,5'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:145,5'
              BranchSideFuncs:
                - pthread_once
            - BranchSide:      'lib/timeval.c:145,5'
              BranchSideFuncs:
                - pthread_once
      Callsites:
        - Src:             'lib/timeval.c:145,5'
          Dst:             pthread_once
        - Src:             'lib/timeval.c:145,5'
          Dst:             do_init_time
    - functionName:    timeval_to_usec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 394
      functionLinenumberEnd: 395
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - tv
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    timespec_to_usec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ts
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    refresh_rusage
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 733
      functionLinenumberEnd: 754
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         18
      ICount:          146
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - get_cpu_tracker
        - getrusage_thread
        - time_msec
        - timeval_to_msec
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/timeval.c:734,29'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:734,25'
              BranchSideFuncs:
                - get_cpu_tracker
                - getrusage_thread
                - time_msec
                - timeval_to_msec
                - timeval_to_msec
            - BranchSide:      'lib/timeval.c:734,29'
              BranchSideFuncs:
                - get_cpu_tracker
                - getrusage_thread
                - time_msec
                - timeval_to_msec
                - timeval_to_msec
        - Branch String:   'lib/timeval.c:737,9'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:737,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/timeval.c:738,29'
              BranchSideFuncs:
                - time_msec
                - timeval_to_msec
                - timeval_to_msec
        - Branch String:   'lib/timeval.c:739,13'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:740,13'
              BranchSideFuncs:
                - timeval_to_msec
                - timeval_to_msec
            - BranchSide:      'lib/timeval.c:753,5'
              BranchSideFuncs: []
        - Branch String:   'lib/timeval.c:745,44'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:745,47'
              BranchSideFuncs: []
            - BranchSide:      'lib/timeval.c:750,17'
              BranchSideFuncs: []
        - Branch String:   'lib/timeval.c:745,17'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:746,41'
              BranchSideFuncs: []
            - BranchSide:      'lib/timeval.c:750,17'
              BranchSideFuncs: []
        - Branch String:   'lib/timeval.c:748,32'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:748,46'
              BranchSideFuncs: []
            - BranchSide:      'lib/timeval.c:748,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/timeval.c:734,29'
          Dst:             get_cpu_tracker
        - Src:             'lib/timeval.c:737,10'
          Dst:             getrusage_thread
        - Src:             'lib/timeval.c:738,29'
          Dst:             time_msec
        - Src:             'lib/timeval.c:742,29'
          Dst:             timeval_to_msec
        - Src:             'lib/timeval.c:743,29'
          Dst:             timeval_to_msec
    - functionName:    time_msec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_msec__
      functionUses:    46
      BranchProfiles:
        - Branch String:   'lib/timeval.c:226,12'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:226,12'
              BranchSideFuncs:
                - time_msec__
            - BranchSide:      'lib/timeval.c:226,12'
              BranchSideFuncs:
                - time_msec__
      Callsites:
        - Src:             'lib/timeval.c:226,12'
          Dst:             time_msec__
    - functionName:    time_msec__
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - c
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_timespec__
        - timespec_to_msec
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:218,5'
          Dst:             time_timespec__
        - Src:             'lib/timeval.c:219,12'
          Dst:             timespec_to_msec
    - functionName:    time_timespec__
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - c
        - ts
      BBCount:         9
      ICount:          85
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - time_init
        - timespec_add
        - xclock_gettime
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/timeval.c:156,9'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:157,24'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - xclock_gettime
                - timespec_add
            - BranchSide:      'lib/timeval.c:163,9'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - xclock_gettime
                - timespec_add
        - Branch String:   'lib/timeval.c:169,13'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:170,28'
              BranchSideFuncs:
                - timespec_add
            - BranchSide:      'lib/timeval.c:172,22'
              BranchSideFuncs:
                - timespec_add
      Callsites:
        - Src:             'lib/timeval.c:153,5'
          Dst:             time_init
        - Src:             'lib/timeval.c:157,9'
          Dst:             xclock_gettime
        - Src:             'lib/timeval.c:163,9'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/timeval.c:167,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/timeval.c:170,13'
          Dst:             xclock_gettime
        - Src:             'lib/timeval.c:172,9'
          Dst:             timespec_add
    - functionName:    log_poll_interval
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 642
      functionLinenumberEnd: 683
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - last_wakeup
      BBCount:         54
      ICount:          294
      EdgeCount:       68
      CyclomaticComplexity: 16
      functionsReached:
        - coverage_log
        - get_recent_rusage
        - getrusage_thread
        - is_warped
        - long_poll_interval_add
        - time_msec
        - timeval_diff_msec
        - vlog
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/timeval.c:645,26'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:645,30'
              BranchSideFuncs:
                - is_warped
                - get_recent_rusage
                - long_poll_interval_add
                - getrusage_thread
                - coverage_log
                - vlog
                - vlog
                - vlog
                - timeval_diff_msec
                - timeval_diff_msec
                - vlog
                - vlog
            - BranchSide:      'lib/timeval.c:645,26'
              BranchSideFuncs: []
        - Branch String:   'lib/timeval.c:645,9'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:645,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/timeval.c:646,44'
              BranchSideFuncs:
                - get_recent_rusage
                - long_poll_interval_add
                - getrusage_thread
                - coverage_log
                - vlog
                - vlog
                - vlog
                - timeval_diff_msec
                - timeval_diff_msec
                - vlog
                - vlog
        - Branch String:   'lib/timeval.c:651,13'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:652,13'
              BranchSideFuncs:
                - coverage_log
                - vlog
            - BranchSide:      'lib/timeval.c:679,13'
              BranchSideFuncs:
                - coverage_log
                - vlog
        - Branch String:   'lib/timeval.c:652,13'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:652,13'
              BranchSideFuncs:
                - timeval_diff_msec
                - timeval_diff_msec
                - vlog
                - coverage_log
                - vlog
                - vlog
                - vlog
            - BranchSide:      'lib/timeval.c:660,24'
              BranchSideFuncs:
                - coverage_log
                - vlog
                - vlog
                - vlog
        - Branch String:   'lib/timeval.c:661,17'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:661,27'
              BranchSideFuncs:
                - coverage_log
                - vlog
                - vlog
                - vlog
            - BranchSide:      'lib/timeval.c:662,17'
              BranchSideFuncs:
                - coverage_log
                - vlog
                - vlog
                - vlog
        - Branch String:   'lib/timeval.c:660,17'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:662,17'
              BranchSideFuncs:
                - coverage_log
                - vlog
                - vlog
                - vlog
            - BranchSide:      'lib/timeval.c:666,24'
              BranchSideFuncs:
                - coverage_log
                - vlog
                - vlog
        - Branch String:   'lib/timeval.c:662,17'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:662,17'
              BranchSideFuncs:
                - vlog
                - coverage_log
                - vlog
                - vlog
            - BranchSide:      'lib/timeval.c:665,13'
              BranchSideFuncs:
                - coverage_log
                - vlog
                - vlog
        - Branch String:   'lib/timeval.c:667,17'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:667,27'
              BranchSideFuncs:
                - coverage_log
                - vlog
                - vlog
            - BranchSide:      'lib/timeval.c:668,17'
              BranchSideFuncs:
                - coverage_log
                - vlog
                - vlog
        - Branch String:   'lib/timeval.c:666,17'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:668,17'
              BranchSideFuncs:
                - coverage_log
                - vlog
                - vlog
            - BranchSide:      'lib/timeval.c:672,24'
              BranchSideFuncs:
                - coverage_log
                - vlog
        - Branch String:   'lib/timeval.c:668,17'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:668,17'
              BranchSideFuncs:
                - vlog
                - coverage_log
                - vlog
            - BranchSide:      'lib/timeval.c:671,13'
              BranchSideFuncs:
                - coverage_log
                - vlog
        - Branch String:   'lib/timeval.c:673,17'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:673,27'
              BranchSideFuncs:
                - coverage_log
                - vlog
            - BranchSide:      'lib/timeval.c:674,17'
              BranchSideFuncs:
                - coverage_log
                - vlog
        - Branch String:   'lib/timeval.c:672,17'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:674,17'
              BranchSideFuncs:
                - coverage_log
                - vlog
            - BranchSide:      'lib/timeval.c:678,9'
              BranchSideFuncs:
                - coverage_log
        - Branch String:   'lib/timeval.c:674,17'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:674,17'
              BranchSideFuncs:
                - vlog
                - coverage_log
            - BranchSide:      'lib/timeval.c:677,13'
              BranchSideFuncs:
                - coverage_log
        - Branch String:   'lib/timeval.c:679,13'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:0,0'
              BranchSideFuncs:
                - vlog
                - coverage_log
            - BranchSide:      'lib/timeval.c:679,13'
              BranchSideFuncs:
                - vlog
                - coverage_log
      Callsites:
        - Src:             'lib/timeval.c:643,30'
          Dst:             time_msec
        - Src:             'lib/timeval.c:645,30'
          Dst:             is_warped
        - Src:             'lib/timeval.c:646,44'
          Dst:             get_recent_rusage
        - Src:             'lib/timeval.c:649,9'
          Dst:             long_poll_interval_add
        - Src:             'lib/timeval.c:651,14'
          Dst:             getrusage_thread
        - Src:             'lib/timeval.c:652,13'
          Dst:             timeval_diff_msec
        - Src:             'lib/timeval.c:652,13'
          Dst:             timeval_diff_msec
        - Src:             'lib/timeval.c:652,13'
          Dst:             vlog
        - Src:             'lib/timeval.c:662,17'
          Dst:             vlog
        - Src:             'lib/timeval.c:668,17'
          Dst:             vlog
        - Src:             'lib/timeval.c:674,17'
          Dst:             vlog
        - Src:             'lib/timeval.c:679,13'
          Dst:             vlog
        - Src:             'lib/timeval.c:681,9'
          Dst:             coverage_log
    - functionName:    last_wakeup_get
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - last_wakeup_get_unsafe
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/timeval.c:106,1'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:106,1'
              BranchSideFuncs:
                - last_wakeup_get_unsafe
            - BranchSide:      'lib/timeval.c:106,1'
              BranchSideFuncs:
                - last_wakeup_get_unsafe
      Callsites:
        - Src:             'lib/timeval.c:106,1'
          Dst:             last_wakeup_get_unsafe
    - functionName:    time_poll
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pollfds
        - n_pollfds
        - handles
        - timeout_when
        - elapsed
      BBCount:         40
      ICount:          229
      EdgeCount:       53
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - coverage_clear
        - coverage_run
        - fatal_signal_handler
        - last_wakeup_get
        - log_poll_interval
        - ovsrcu_is_quiescent
        - ovsrcu_quiesce
        - ovsrcu_quiesce_end
        - ovsrcu_quiesce_start
        - poll
        - refresh_rusage
        - thread_is_pmd
        - time_init
        - time_msec
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/timeval.c:299,22'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:299,26'
              BranchSideFuncs:
                - thread_is_pmd
                - log_poll_interval
                - time_msec
                - ovsrcu_is_quiescent
                - time_msec
                - ovsrcu_quiesce
                - poll
                - time_msec
                - time_msec
                - refresh_rusage
                - fatal_signal_handler
                - ovsrcu_quiesce_end
                - __errno_location
                - ovsrcu_quiesce_start
            - BranchSide:      'lib/timeval.c:302,13'
              BranchSideFuncs:
                - time_msec
                - ovsrcu_is_quiescent
                - time_msec
                - ovsrcu_quiesce
                - poll
                - time_msec
                - time_msec
                - refresh_rusage
                - fatal_signal_handler
                - ovsrcu_quiesce_end
                - __errno_location
                - ovsrcu_quiesce_start
        - Branch String:   'lib/timeval.c:299,9'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:300,28'
              BranchSideFuncs:
                - time_msec
                - ovsrcu_is_quiescent
                - time_msec
                - ovsrcu_quiesce
                - poll
                - time_msec
                - time_msec
                - refresh_rusage
                - fatal_signal_handler
                - ovsrcu_quiesce_end
                - __errno_location
                - ovsrcu_quiesce_start
            - BranchSide:      'lib/timeval.c:302,13'
              BranchSideFuncs:
                - time_msec
                - ovsrcu_is_quiescent
                - time_msec
                - ovsrcu_quiesce
                - poll
                - time_msec
                - time_msec
                - refresh_rusage
                - fatal_signal_handler
                - ovsrcu_quiesce_end
                - __errno_location
                - ovsrcu_quiesce_start
        - Branch String:   'lib/timeval.c:304,20'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:304,18'
              BranchSideFuncs:
                - ovsrcu_is_quiescent
                - time_msec
                - ovsrcu_quiesce
                - poll
                - time_msec
                - time_msec
                - refresh_rusage
                - fatal_signal_handler
                - ovsrcu_quiesce_end
                - __errno_location
                - ovsrcu_quiesce_start
            - BranchSide:      'lib/timeval.c:304,18'
              BranchSideFuncs:
                - ovsrcu_is_quiescent
                - time_msec
                - ovsrcu_quiesce
                - poll
                - time_msec
                - time_msec
                - refresh_rusage
                - fatal_signal_handler
                - ovsrcu_quiesce_end
                - __errno_location
                - ovsrcu_quiesce_start
        - Branch String:   'lib/timeval.c:311,13'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:312,23'
              BranchSideFuncs:
                - ovsrcu_quiesce
                - poll
                - time_msec
                - time_msec
                - time_msec
                - refresh_rusage
                - fatal_signal_handler
                - ovsrcu_quiesce_end
                - __errno_location
                - ovsrcu_quiesce_start
            - BranchSide:      'lib/timeval.c:313,45'
              BranchSideFuncs:
                - ovsrcu_quiesce
                - poll
                - time_msec
                - time_msec
                - time_msec
                - refresh_rusage
                - fatal_signal_handler
                - ovsrcu_quiesce_end
                - __errno_location
                - ovsrcu_quiesce_start
        - Branch String:   'lib/timeval.c:313,20'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:314,23'
              BranchSideFuncs:
                - ovsrcu_quiesce
                - poll
                - time_msec
                - time_msec
                - time_msec
                - refresh_rusage
                - fatal_signal_handler
                - ovsrcu_quiesce_end
                - __errno_location
                - ovsrcu_quiesce_start
            - BranchSide:      'lib/timeval.c:316,25'
              BranchSideFuncs:
                - ovsrcu_quiesce
                - poll
                - time_msec
                - time_msec
                - time_msec
                - refresh_rusage
                - fatal_signal_handler
                - ovsrcu_quiesce_end
                - __errno_location
                - ovsrcu_quiesce_start
        - Branch String:   'lib/timeval.c:319,13'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:320,18'
              BranchSideFuncs:
                - poll
                - time_msec
                - time_msec
                - ovsrcu_quiesce
                - ovsrcu_quiesce_start
                - time_msec
                - refresh_rusage
                - fatal_signal_handler
                - ovsrcu_quiesce_end
                - __errno_location
            - BranchSide:      'lib/timeval.c:328,23'
              BranchSideFuncs:
                - poll
                - time_msec
                - time_msec
                - ovsrcu_quiesce
                - ovsrcu_quiesce_start
                - time_msec
                - refresh_rusage
                - fatal_signal_handler
                - ovsrcu_quiesce_end
                - __errno_location
        - Branch String:   'lib/timeval.c:320,17'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:321,17'
              BranchSideFuncs:
                - ovsrcu_quiesce_start
                - poll
                - time_msec
                - time_msec
                - ovsrcu_quiesce
                - time_msec
                - refresh_rusage
                - fatal_signal_handler
                - ovsrcu_quiesce_end
                - __errno_location
            - BranchSide:      'lib/timeval.c:323,17'
              BranchSideFuncs:
                - ovsrcu_quiesce_start
                - poll
                - time_msec
                - time_msec
                - ovsrcu_quiesce
                - time_msec
                - refresh_rusage
                - fatal_signal_handler
                - ovsrcu_quiesce_end
                - __errno_location
        - Branch String:   'lib/timeval.c:329,13'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:330,23'
              BranchSideFuncs:
                - __errno_location
                - time_msec
                - time_msec
                - ovsrcu_quiesce
                - poll
                - ovsrcu_quiesce_start
                - time_msec
                - refresh_rusage
                - fatal_signal_handler
                - ovsrcu_quiesce_end
            - BranchSide:      'lib/timeval.c:347,14'
              BranchSideFuncs:
                - time_msec
                - time_msec
                - ovsrcu_quiesce
                - poll
                - __errno_location
                - ovsrcu_quiesce_start
                - time_msec
                - refresh_rusage
                - fatal_signal_handler
                - ovsrcu_quiesce_end
        - Branch String:   'lib/timeval.c:347,24'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:347,27'
              BranchSideFuncs:
                - time_msec
                - time_msec
                - ovsrcu_quiesce
                - poll
                - ovsrcu_quiesce_end
                - __errno_location
                - ovsrcu_quiesce_start
                - time_msec
                - refresh_rusage
                - fatal_signal_handler
            - BranchSide:      'lib/timeval.c:351,13'
              BranchSideFuncs:
                - time_msec
                - time_msec
                - ovsrcu_quiesce
                - poll
                - ovsrcu_quiesce_end
                - __errno_location
                - ovsrcu_quiesce_start
                - time_msec
                - refresh_rusage
                - fatal_signal_handler
        - Branch String:   'lib/timeval.c:347,13'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:348,13'
              BranchSideFuncs:
                - ovsrcu_quiesce_end
                - time_msec
                - time_msec
                - ovsrcu_quiesce
                - poll
                - __errno_location
                - ovsrcu_quiesce_start
                - time_msec
                - refresh_rusage
                - fatal_signal_handler
            - BranchSide:      'lib/timeval.c:351,13'
              BranchSideFuncs:
                - time_msec
                - time_msec
                - ovsrcu_quiesce
                - poll
                - ovsrcu_quiesce_end
                - __errno_location
                - ovsrcu_quiesce_start
                - time_msec
                - refresh_rusage
                - fatal_signal_handler
        - Branch String:   'lib/timeval.c:351,13'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:353,13'
              BranchSideFuncs:
                - fatal_signal_handler
                - time_msec
                - refresh_rusage
            - BranchSide:      'lib/timeval.c:364,13'
              BranchSideFuncs:
                - time_msec
                - ovsrcu_quiesce
                - poll
                - time_msec
                - fatal_signal_handler
                - time_msec
                - refresh_rusage
                - ovsrcu_quiesce_end
                - __errno_location
                - ovsrcu_quiesce_start
        - Branch String:   'lib/timeval.c:358,17'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:359,24'
              BranchSideFuncs:
                - time_msec
                - refresh_rusage
            - BranchSide:      'lib/timeval.c:361,13'
              BranchSideFuncs:
                - time_msec
                - refresh_rusage
        - Branch String:   'lib/timeval.c:364,13'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:307,5'
              BranchSideFuncs:
                - time_msec
                - refresh_rusage
            - BranchSide:      'lib/timeval.c:365,13'
              BranchSideFuncs:
                - time_msec
                - refresh_rusage
      Callsites:
        - Src:             'lib/timeval.c:291,34'
          Dst:             last_wakeup_get
        - Src:             'lib/timeval.c:296,5'
          Dst:             time_init
        - Src:             'lib/timeval.c:297,5'
          Dst:             coverage_clear
        - Src:             'lib/timeval.c:298,5'
          Dst:             coverage_run
        - Src:             'lib/timeval.c:299,26'
          Dst:             thread_is_pmd
        - Src:             'lib/timeval.c:300,9'
          Dst:             log_poll_interval
        - Src:             'lib/timeval.c:302,13'
          Dst:             time_msec
        - Src:             'lib/timeval.c:305,17'
          Dst:             ovsrcu_is_quiescent
        - Src:             'lib/timeval.c:308,29'
          Dst:             time_msec
        - Src:             'lib/timeval.c:321,17'
          Dst:             ovsrcu_quiesce
        - Src:             'lib/timeval.c:323,17'
          Dst:             ovsrcu_quiesce_start
        - Src:             'lib/timeval.c:328,18'
          Dst:             poll
        - Src:             'lib/timeval.c:330,23'
          Dst:             __errno_location
        - Src:             'lib/timeval.c:348,13'
          Dst:             ovsrcu_quiesce_end
        - Src:             'lib/timeval.c:351,25'
          Dst:             time_msec
        - Src:             'lib/timeval.c:353,13'
          Dst:             fatal_signal_handler
        - Src:             'lib/timeval.c:368,20'
          Dst:             time_msec
        - Src:             'lib/timeval.c:369,5'
          Dst:             refresh_rusage
    - functionName:    time_alarm
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - secs
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - assert_single_threaded_at
        - time_init
        - time_msec
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/timeval.c:272,16'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:272,42'
              BranchSideFuncs: []
            - BranchSide:      'lib/timeval.c:272,16'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/timeval.c:267,5'
          Dst:             assert_single_threaded_at
        - Src:             'lib/timeval.c:268,5'
          Dst:             time_init
        - Src:             'lib/timeval.c:270,11'
          Dst:             time_msec
    - functionName:    time_wall_usec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_usec__
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/timeval.c:256,12'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:256,12'
              BranchSideFuncs:
                - time_usec__
            - BranchSide:      'lib/timeval.c:256,12'
              BranchSideFuncs:
                - time_usec__
      Callsites:
        - Src:             'lib/timeval.c:256,12'
          Dst:             time_usec__
    - functionName:    time_usec__
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - c
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_timespec__
        - timespec_to_usec
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:241,5'
          Dst:             time_timespec__
        - Src:             'lib/timeval.c:242,12'
          Dst:             timespec_to_usec
    - functionName:    time_usec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_usec__
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/timeval.c:249,12'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:249,12'
              BranchSideFuncs:
                - time_usec__
            - BranchSide:      'lib/timeval.c:249,12'
              BranchSideFuncs:
                - time_usec__
      Callsites:
        - Src:             'lib/timeval.c:249,12'
          Dst:             time_usec__
    - functionName:    time_wall_msec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_msec__
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/timeval.c:233,12'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:233,12'
              BranchSideFuncs:
                - time_msec__
            - BranchSide:      'lib/timeval.c:233,12'
              BranchSideFuncs:
                - time_msec__
      Callsites:
        - Src:             'lib/timeval.c:233,12'
          Dst:             time_msec__
    - functionName:    time_wall
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_sec__
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/timeval.c:210,12'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:210,12'
              BranchSideFuncs:
                - time_sec__
            - BranchSide:      'lib/timeval.c:210,12'
              BranchSideFuncs:
                - time_sec__
      Callsites:
        - Src:             'lib/timeval.c:210,12'
          Dst:             time_sec__
    - functionName:    time_sec__
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - c
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_timespec__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:195,5'
          Dst:             time_timespec__
    - functionName:    time_now
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_sec__
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/timeval.c:203,12'
          Branch Sides:
            - BranchSide:      'lib/timeval.c:203,12'
              BranchSideFuncs:
                - time_sec__
            - BranchSide:      'lib/timeval.c:203,12'
              BranchSideFuncs:
                - time_sec__
      Callsites:
        - Src:             'lib/timeval.c:203,12'
          Dst:             time_sec__
    - functionName:    time_wall_timespec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ts
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_timespec__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:187,5'
          Dst:             time_timespec__
    - functionName:    time_timespec
      functionSourceFile: '/src/openvswitch/lib/timeval.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ts
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - time_timespec__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/timeval.c:180,5'
          Dst:             time_timespec__
    - functionName:    invalid_utf8_sequence
      functionSourceFile: '/src/openvswitch/lib/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - n
        - lengthp
      BBCount:         10
      ICount:          65
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ds_init
        - ds_put_cstr
        - ds_put_format
        - ds_steal_cstr
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/unicode.c:67,9'
          Branch Sides:
            - BranchSide:      'lib/unicode.c:68,10'
              BranchSideFuncs:
                - ds_init
                - ds_put_cstr
                - ds_steal_cstr
                - ds_put_format
            - BranchSide:      'lib/unicode.c:71,5'
              BranchSideFuncs:
                - ds_init
                - ds_put_cstr
                - ds_steal_cstr
                - ds_put_format
        - Branch String:   'lib/unicode.c:73,5'
          Branch Sides:
            - BranchSide:      'lib/unicode.c:74,44'
              BranchSideFuncs:
                - ds_put_format
                - ds_steal_cstr
            - BranchSide:      'lib/unicode.c:76,12'
              BranchSideFuncs:
                - ds_steal_cstr
      Callsites:
        - Src:             'lib/unicode.c:71,5'
          Dst:             ds_init
        - Src:             'lib/unicode.c:72,5'
          Dst:             ds_put_cstr
        - Src:             'lib/unicode.c:74,9'
          Dst:             ds_put_format
        - Src:             'lib/unicode.c:76,12'
          Dst:             ds_steal_cstr
    - functionName:    lookup_utf8_sequence
      functionSourceFile: '/src/openvswitch/lib/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - c
      BBCount:         11
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/unicode.c:117,5'
          Branch Sides:
            - BranchSide:      'lib/unicode.c:118,33'
              BranchSideFuncs: []
            - BranchSide:      'lib/unicode.c:123,5'
              BranchSideFuncs: []
        - Branch String:   'lib/unicode.c:119,23'
          Branch Sides:
            - BranchSide:      'lib/unicode.c:119,26'
              BranchSideFuncs: []
            - BranchSide:      'lib/unicode.c:122,5'
              BranchSideFuncs: []
        - Branch String:   'lib/unicode.c:119,13'
          Branch Sides:
            - BranchSide:      'lib/unicode.c:120,26'
              BranchSideFuncs: []
            - BranchSide:      'lib/unicode.c:122,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    utf8_validate
      functionSourceFile: '/src/openvswitch/lib/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s_
        - lengthp
      BBCount:         24
      ICount:          166
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - invalid_utf8_sequence
        - lookup_utf8_sequence
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/unicode.c:138,5'
          Branch Sides:
            - BranchSide:      'lib/unicode.c:139,15'
              BranchSideFuncs:
                - lookup_utf8_sequence
                - invalid_utf8_sequence
                - invalid_utf8_sequence
            - BranchSide:      'lib/unicode.c:160,9'
              BranchSideFuncs: []
        - Branch String:   'lib/unicode.c:140,13'
          Branch Sides:
            - BranchSide:      'lib/unicode.c:141,14'
              BranchSideFuncs:
                - lookup_utf8_sequence
                - invalid_utf8_sequence
                - invalid_utf8_sequence
            - BranchSide:      'lib/unicode.c:146,40'
              BranchSideFuncs:
                - lookup_utf8_sequence
                - invalid_utf8_sequence
                - invalid_utf8_sequence
        - Branch String:   'lib/unicode.c:147,17'
          Branch Sides:
            - BranchSide:      'lib/unicode.c:148,46'
              BranchSideFuncs:
                - lookup_utf8_sequence
                - invalid_utf8_sequence
                - invalid_utf8_sequence
            - BranchSide:      'lib/unicode.c:151,20'
              BranchSideFuncs:
                - lookup_utf8_sequence
                - invalid_utf8_sequence
                - invalid_utf8_sequence
        - Branch String:   'lib/unicode.c:151,13'
          Branch Sides:
            - BranchSide:      'lib/unicode.c:152,36'
              BranchSideFuncs:
                - lookup_utf8_sequence
                - invalid_utf8_sequence
                - invalid_utf8_sequence
            - BranchSide:      'lib/unicode.c:157,18'
              BranchSideFuncs:
                - lookup_utf8_sequence
                - invalid_utf8_sequence
                - invalid_utf8_sequence
        - Branch String:   'lib/unicode.c:153,33'
          Branch Sides:
            - BranchSide:      'lib/unicode.c:153,36'
              BranchSideFuncs:
                - invalid_utf8_sequence
            - BranchSide:      'lib/unicode.c:154,50'
              BranchSideFuncs:
                - invalid_utf8_sequence
        - Branch String:   'lib/unicode.c:153,21'
          Branch Sides:
            - BranchSide:      'lib/unicode.c:154,50'
              BranchSideFuncs:
                - invalid_utf8_sequence
            - BranchSide:      'lib/unicode.c:156,13'
              BranchSideFuncs:
                - lookup_utf8_sequence
                - invalid_utf8_sequence
                - invalid_utf8_sequence
        - Branch String:   'lib/unicode.c:160,9'
          Branch Sides:
            - BranchSide:      'lib/unicode.c:161,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/unicode.c:163,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/unicode.c:146,19'
          Dst:             lookup_utf8_sequence
        - Src:             'lib/unicode.c:148,24'
          Dst:             invalid_utf8_sequence
        - Src:             'lib/unicode.c:154,28'
          Dst:             invalid_utf8_sequence
    - functionName:    utf8_length
      functionSourceFile: '/src/openvswitch/lib/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s_
      BBCount:         5
      ICount:          44
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/unicode.c:53,5'
          Branch Sides:
            - BranchSide:      'lib/unicode.c:56,21'
              BranchSideFuncs: []
            - BranchSide:      'lib/unicode.c:58,12'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    utf16_decode_surrogate_pair
      functionSourceFile: '/src/openvswitch/lib/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - leading
        - trailing
      BBCount:         1
      ICount:          38
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_this_module_unixctl
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:36,1'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:36,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/unixctl.c:36,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/unixctl.c:36,1'
          Dst:             vlog_insert_module
    - functionName:    unixctl_received_init_coverage
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:38,1'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:38,1'
              BranchSideFuncs:
                - coverage_counter_register
            - BranchSide:      'lib/unixctl.c:38,1'
              BranchSideFuncs:
                - coverage_counter_register
      Callsites:
        - Src:             'lib/unixctl.c:38,1'
          Dst:             coverage_counter_register
    - functionName:    unixctl_replied_init_coverage
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:39,1'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:39,1'
              BranchSideFuncs:
                - coverage_counter_register
            - BranchSide:      'lib/unixctl.c:39,1'
              BranchSideFuncs:
                - coverage_counter_register
      Callsites:
        - Src:             'lib/unixctl.c:39,1'
          Dst:             coverage_counter_register
    - functionName:    unixctl_replied_count
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_unixctl_replied_get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:39,1'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:39,1'
              BranchSideFuncs:
                - counter_unixctl_replied_get
            - BranchSide:      'lib/unixctl.c:39,1'
              BranchSideFuncs:
                - counter_unixctl_replied_get
      Callsites:
        - Src:             'lib/unixctl.c:39,1'
          Dst:             counter_unixctl_replied_get
    - functionName:    counter_unixctl_replied_get
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_unixctl_replied_get_unsafe
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:39,1'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:39,1'
              BranchSideFuncs:
                - counter_unixctl_replied_get_unsafe
            - BranchSide:      'lib/unixctl.c:39,1'
              BranchSideFuncs:
                - counter_unixctl_replied_get_unsafe
      Callsites:
        - Src:             'lib/unixctl.c:39,1'
          Dst:             counter_unixctl_replied_get_unsafe
    - functionName:    counter_unixctl_replied_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unixctl_received_count
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_unixctl_received_get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:38,1'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:38,1'
              BranchSideFuncs:
                - counter_unixctl_received_get
            - BranchSide:      'lib/unixctl.c:38,1'
              BranchSideFuncs:
                - counter_unixctl_received_get
      Callsites:
        - Src:             'lib/unixctl.c:38,1'
          Dst:             counter_unixctl_received_get
    - functionName:    counter_unixctl_received_get
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_unixctl_received_get_unsafe
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:38,1'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:38,1'
              BranchSideFuncs:
                - counter_unixctl_received_get_unsafe
            - BranchSide:      'lib/unixctl.c:38,1'
              BranchSideFuncs:
                - counter_unixctl_received_get_unsafe
      Callsites:
        - Src:             'lib/unixctl.c:38,1'
          Dst:             counter_unixctl_received_get_unsafe
    - functionName:    counter_unixctl_received_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - elem
      BBCount:         1
      ICount:          26
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    json_clone
      functionSourceFile: '/src/openvswitch/./include/openvswitch/json.h'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - json_
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unixctl_received_add
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - n
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_unixctl_received_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:38,1'
          Dst:             counter_unixctl_received_get
    - functionName:    process_command
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 443
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
        - request
      BBCount:         33
      ICount:          254
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - json_array_at
        - json_array_size
        - json_clone
        - json_string
        - json_to_string
        - shash_find_data
        - svec_add
        - svec_destroy
        - svec_terminate
        - unixctl_command_reply_error
        - unixctl_received_add
        - vlog
        - vlog_is_enabled
        - xasprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:393,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:394,41'
              BranchSideFuncs:
                - json_to_string
                - json_to_string
                - free
                - free
                - shash_find_data
                - xasprintf
                - unixctl_command_reply_error
                - free
                - json_array_size
                - json_array_size
                - json_array_size
                - svec_add
                - svec_terminate
                - svec_destroy
                - json_array_at
                - json_string
                - svec_add
                - xasprintf
                - xasprintf
                - xasprintf
                - vlog
            - BranchSide:      'lib/unixctl.c:402,14'
              BranchSideFuncs:
                - shash_find_data
                - xasprintf
                - unixctl_command_reply_error
                - free
                - json_array_size
                - json_array_size
                - json_array_size
                - svec_add
                - svec_terminate
                - svec_destroy
                - json_array_at
                - json_string
                - svec_add
                - xasprintf
                - xasprintf
                - xasprintf
        - Branch String:   'lib/unixctl.c:396,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:396,9'
              BranchSideFuncs:
                - vlog
                - free
                - free
                - shash_find_data
                - xasprintf
                - unixctl_command_reply_error
                - free
                - json_array_size
                - json_array_size
                - json_array_size
                - svec_add
                - svec_terminate
                - svec_destroy
                - json_array_at
                - json_string
                - svec_add
                - xasprintf
                - xasprintf
                - xasprintf
            - BranchSide:      'lib/unixctl.c:398,14'
              BranchSideFuncs:
                - free
                - free
                - shash_find_data
                - xasprintf
                - unixctl_command_reply_error
                - free
                - json_array_size
                - json_array_size
                - json_array_size
                - svec_add
                - svec_terminate
                - svec_destroy
                - json_array_at
                - json_string
                - svec_add
                - xasprintf
                - xasprintf
                - xasprintf
        - Branch String:   'lib/unixctl.c:404,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:407,27'
              BranchSideFuncs:
                - json_array_size
                - json_array_size
                - json_array_size
                - svec_add
                - svec_terminate
                - svec_destroy
                - unixctl_command_reply_error
                - free
                - json_array_at
                - json_string
                - svec_add
                - xasprintf
                - xasprintf
                - xasprintf
            - BranchSide:      'lib/unixctl.c:408,32'
              BranchSideFuncs:
                - json_array_size
                - json_array_size
                - json_array_size
                - svec_add
                - svec_terminate
                - svec_destroy
                - unixctl_command_reply_error
                - free
                - json_array_at
                - json_string
                - svec_add
                - xasprintf
                - xasprintf
                - xasprintf
        - Branch String:   'lib/unixctl.c:408,16'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:410,27'
              BranchSideFuncs:
                - xasprintf
                - unixctl_command_reply_error
                - free
            - BranchSide:      'lib/unixctl.c:411,32'
              BranchSideFuncs:
                - json_array_size
                - json_array_size
                - svec_add
                - svec_terminate
                - svec_destroy
                - unixctl_command_reply_error
                - free
                - json_array_at
                - json_string
                - svec_add
                - xasprintf
                - xasprintf
        - Branch String:   'lib/unixctl.c:411,16'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:413,27'
              BranchSideFuncs:
                - xasprintf
                - unixctl_command_reply_error
                - free
            - BranchSide:      'lib/unixctl.c:415,21'
              BranchSideFuncs:
                - json_array_size
                - svec_add
                - svec_terminate
                - svec_destroy
                - unixctl_command_reply_error
                - free
                - json_array_at
                - json_string
                - svec_add
                - xasprintf
        - Branch String:   'lib/unixctl.c:419,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:420,53'
              BranchSideFuncs:
                - json_array_at
                - json_string
                - svec_add
                - svec_terminate
                - svec_destroy
                - unixctl_command_reply_error
                - free
                - xasprintf
            - BranchSide:      'lib/unixctl.c:429,9'
              BranchSideFuncs:
                - svec_terminate
                - svec_destroy
                - unixctl_command_reply_error
                - free
        - Branch String:   'lib/unixctl.c:422,17'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:424,35'
              BranchSideFuncs:
                - xasprintf
                - svec_terminate
                - svec_destroy
                - unixctl_command_reply_error
                - free
            - BranchSide:      'lib/unixctl.c:427,41'
              BranchSideFuncs:
                - json_string
                - svec_add
                - svec_terminate
                - svec_destroy
                - unixctl_command_reply_error
                - free
                - json_array_at
                - xasprintf
        - Branch String:   'lib/unixctl.c:431,13'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:432,13'
              BranchSideFuncs:
                - svec_destroy
                - unixctl_command_reply_error
                - free
            - BranchSide:      'lib/unixctl.c:436,9'
              BranchSideFuncs:
                - svec_destroy
                - unixctl_command_reply_error
                - free
        - Branch String:   'lib/unixctl.c:439,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:439,9'
              BranchSideFuncs:
                - unixctl_command_reply_error
                - free
            - BranchSide:      'lib/unixctl.c:440,37'
              BranchSideFuncs:
                - unixctl_command_reply_error
                - free
      Callsites:
        - Src:             'lib/unixctl.c:390,5'
          Dst:             unixctl_received_add
        - Src:             'lib/unixctl.c:391,24'
          Dst:             json_clone
        - Src:             'lib/unixctl.c:393,9'
          Dst:             vlog_is_enabled
        - Src:             'lib/unixctl.c:394,26'
          Dst:             json_to_string
        - Src:             'lib/unixctl.c:395,22'
          Dst:             json_to_string
        - Src:             'lib/unixctl.c:396,9'
          Dst:             vlog
        - Src:             'lib/unixctl.c:403,15'
          Dst:             shash_find_data
        - Src:             'lib/unixctl.c:405,17'
          Dst:             xasprintf
        - Src:             'lib/unixctl.c:408,16'
          Dst:             json_array_size
        - Src:             'lib/unixctl.c:409,17'
          Dst:             xasprintf
        - Src:             'lib/unixctl.c:411,16'
          Dst:             json_array_size
        - Src:             'lib/unixctl.c:412,17'
          Dst:             xasprintf
        - Src:             'lib/unixctl.c:416,21'
          Dst:             json_array_size
        - Src:             'lib/unixctl.c:418,9'
          Dst:             svec_add
        - Src:             'lib/unixctl.c:420,39'
          Dst:             json_array_at
        - Src:             'lib/unixctl.c:423,25'
          Dst:             xasprintf
        - Src:             'lib/unixctl.c:427,29'
          Dst:             json_string
        - Src:             'lib/unixctl.c:427,13'
          Dst:             svec_add
        - Src:             'lib/unixctl.c:429,9'
          Dst:             svec_terminate
        - Src:             'lib/unixctl.c:436,9'
          Dst:             svec_destroy
        - Src:             'lib/unixctl.c:440,9'
          Dst:             unixctl_command_reply_error
    - functionName:    unixctl_command_reply_error
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 307
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
        - error
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - json_string_create
        - unixctl_command_reply__
      functionUses:    9
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:306,48'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:306,56'
              BranchSideFuncs:
                - json_string_create
                - unixctl_command_reply__
            - BranchSide:      'lib/unixctl.c:306,48'
              BranchSideFuncs:
                - json_string_create
                - unixctl_command_reply__
      Callsites:
        - Src:             'lib/unixctl.c:306,29'
          Dst:             json_string_create
        - Src:             'lib/unixctl.c:305,5'
          Dst:             unixctl_command_reply__
    - functionName:    unixctl_command_reply__
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
        - success
        - body
      BBCount:         14
      ICount:          114
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - json_destroy
        - json_to_string
        - jsonrpc_create_error
        - jsonrpc_create_reply
        - jsonrpc_send
        - unixctl_replied_add
        - vlog
        - vlog_is_enabled
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:237,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:238,38'
              BranchSideFuncs:
                - jsonrpc_create_reply
                - vlog_is_enabled
                - jsonrpc_send
                - json_destroy.2035
                - json_to_string
                - json_to_string
                - free
                - free
                - vlog
            - BranchSide:      'lib/unixctl.c:240,38'
              BranchSideFuncs:
                - jsonrpc_create_error
                - vlog_is_enabled
                - jsonrpc_send
                - json_destroy.2035
                - json_to_string
                - json_to_string
                - free
                - free
                - vlog
        - Branch String:   'lib/unixctl.c:243,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:243,9'
              BranchSideFuncs:
                - json_to_string
                - json_to_string
                - free
                - free
                - jsonrpc_send
                - json_destroy.2035
                - vlog
            - BranchSide:      'lib/unixctl.c:244,35'
              BranchSideFuncs:
                - json_to_string
                - json_to_string
                - free
                - free
                - jsonrpc_send
                - json_destroy.2035
                - vlog
        - Branch String:   'lib/unixctl.c:247,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:247,9'
              BranchSideFuncs:
                - vlog
                - free
                - free
                - jsonrpc_send
                - json_destroy.2035
            - BranchSide:      'lib/unixctl.c:249,14'
              BranchSideFuncs:
                - free
                - free
                - jsonrpc_send
                - json_destroy.2035
      Callsites:
        - Src:             'lib/unixctl.c:234,5'
          Dst:             unixctl_replied_add
        - Src:             'lib/unixctl.c:238,17'
          Dst:             jsonrpc_create_reply
        - Src:             'lib/unixctl.c:240,17'
          Dst:             jsonrpc_create_error
        - Src:             'lib/unixctl.c:243,9'
          Dst:             vlog_is_enabled
        - Src:             'lib/unixctl.c:244,20'
          Dst:             json_to_string
        - Src:             'lib/unixctl.c:245,21'
          Dst:             json_to_string
        - Src:             'lib/unixctl.c:247,9'
          Dst:             vlog
        - Src:             'lib/unixctl.c:255,5'
          Dst:             jsonrpc_send
        - Src:             'lib/unixctl.c:256,5'
          Dst:             json_destroy
    - functionName:    unixctl_replied_add
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - n
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_unixctl_replied_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:39,1'
          Dst:             counter_unixctl_replied_get
    - functionName:    json_destroy
      functionSourceFile: '/src/openvswitch/./include/openvswitch/json.h'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - json
      BBCount:         8
      ICount:          39
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - json_destroy__
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/json.h:200,14'
          Branch Sides:
            - BranchSide:      './include/openvswitch/json.h:200,20'
              BranchSideFuncs:
                - json_destroy__
            - BranchSide:      './include/openvswitch/json.h:200,14'
              BranchSideFuncs: []
        - Branch String:   './include/openvswitch/json.h:200,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/json.h:200,9'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/json.h:201,24'
              BranchSideFuncs:
                - json_destroy__
      Callsites:
        - Src:             './include/openvswitch/json.h:201,9'
          Dst:             json_destroy__
    - functionName:    ovs_list_insert
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - before
        - elem
      BBCount:         1
      ICount:          30
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_next__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - start
      BBCount:         8
      ICount:          55
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:403,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:404,34'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:409,5'
              BranchSideFuncs: []
        - Branch String:   './include/openvswitch/hmap.h:405,13'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:406,20'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:408,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    hmap_next
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_next__
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:430,13'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:431,15'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:432,27'
              BranchSideFuncs:
                - hmap_next__.2037
      Callsites:
        - Src:             './include/openvswitch/hmap.h:432,15'
          Dst:             hmap_next__
    - functionName:    hmap_first
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:417,12'
          Dst:             hmap_next__
    - functionName:    unixctl_client_transact
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 610
      functionLinenumberEnd: 645
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - client
        - command
        - argc
        - argv
        - result
        - err
      BBCount:         26
      ICount:          196
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - json_array_create
        - json_nullable_clone
        - json_string_create
        - json_to_string
        - jsonrpc_create_request
        - jsonrpc_get_name
        - jsonrpc_msg_destroy
        - jsonrpc_transact_block
        - ovs_retval_to_string
        - vlog
        - xmalloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:619,5'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:620,43'
              BranchSideFuncs:
                - json_string_create
                - json_array_create
                - jsonrpc_create_request
                - jsonrpc_transact_block
                - json_nullable_clone
                - json_nullable_clone
                - jsonrpc_msg_destroy
                - jsonrpc_get_name
                - json_to_string
                - json_to_string
                - vlog
                - jsonrpc_get_name
                - ovs_retval_to_string
                - vlog
            - BranchSide:      'lib/unixctl.c:622,32'
              BranchSideFuncs:
                - json_array_create
                - jsonrpc_create_request
                - jsonrpc_transact_block
                - json_nullable_clone
                - json_nullable_clone
                - jsonrpc_msg_destroy
                - jsonrpc_get_name
                - json_to_string
                - json_to_string
                - vlog
                - jsonrpc_get_name
                - ovs_retval_to_string
                - vlog
        - Branch String:   'lib/unixctl.c:626,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:627,9'
              BranchSideFuncs:
                - jsonrpc_get_name
                - ovs_retval_to_string
                - vlog
            - BranchSide:      'lib/unixctl.c:632,9'
              BranchSideFuncs:
                - json_nullable_clone
                - json_nullable_clone
                - jsonrpc_msg_destroy
                - jsonrpc_get_name
                - json_to_string
                - json_to_string
                - vlog
        - Branch String:   'lib/unixctl.c:627,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:627,9'
              BranchSideFuncs:
                - jsonrpc_get_name
                - ovs_retval_to_string
                - vlog
            - BranchSide:      'lib/unixctl.c:629,16'
              BranchSideFuncs: []
        - Branch String:   'lib/unixctl.c:632,23'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:632,26'
              BranchSideFuncs:
                - json_nullable_clone
                - json_nullable_clone
                - jsonrpc_msg_destroy
                - jsonrpc_get_name
                - json_to_string
                - json_to_string
                - vlog
            - BranchSide:      'lib/unixctl.c:639,39'
              BranchSideFuncs:
                - json_nullable_clone
                - json_nullable_clone
                - jsonrpc_msg_destroy
        - Branch String:   'lib/unixctl.c:632,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:633,9'
              BranchSideFuncs:
                - jsonrpc_msg_destroy
                - jsonrpc_get_name
                - json_to_string
                - json_to_string
                - vlog
            - BranchSide:      'lib/unixctl.c:639,39'
              BranchSideFuncs:
                - json_nullable_clone
                - json_nullable_clone
                - jsonrpc_msg_destroy
        - Branch String:   'lib/unixctl.c:633,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:633,9'
              BranchSideFuncs:
                - jsonrpc_get_name
                - json_to_string
                - json_to_string
                - vlog
                - jsonrpc_msg_destroy
            - BranchSide:      'lib/unixctl.c:637,15'
              BranchSideFuncs:
                - jsonrpc_msg_destroy
      Callsites:
        - Src:             'lib/unixctl.c:618,17'
          Dst:             xmalloc
        - Src:             'lib/unixctl.c:620,24'
          Dst:             json_string_create
        - Src:             'lib/unixctl.c:622,14'
          Dst:             json_array_create
        - Src:             'lib/unixctl.c:623,15'
          Dst:             jsonrpc_create_request
        - Src:             'lib/unixctl.c:625,13'
          Dst:             jsonrpc_transact_block
        - Src:             'lib/unixctl.c:627,9'
          Dst:             jsonrpc_get_name
        - Src:             'lib/unixctl.c:627,9'
          Dst:             ovs_retval_to_string
        - Src:             'lib/unixctl.c:627,9'
          Dst:             vlog
        - Src:             'lib/unixctl.c:633,9'
          Dst:             jsonrpc_get_name
        - Src:             'lib/unixctl.c:633,9'
          Dst:             json_to_string
        - Src:             'lib/unixctl.c:633,9'
          Dst:             json_to_string
        - Src:             'lib/unixctl.c:633,9'
          Dst:             vlog
        - Src:             'lib/unixctl.c:639,19'
          Dst:             json_nullable_clone
        - Src:             'lib/unixctl.c:640,16'
          Dst:             json_nullable_clone
        - Src:             'lib/unixctl.c:643,5'
          Dst:             jsonrpc_msg_destroy
    - functionName:    unixctl_client_create
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 578
      functionLinenumberEnd: 599
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - path
        - client
      BBCount:         11
      ICount:          84
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - abs_file_name
        - jsonrpc_open
        - ovs_rundir
        - stream_open
        - stream_open_block
        - vlog
        - xasprintf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:592,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:593,9'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/unixctl.c:597,28'
              BranchSideFuncs:
                - jsonrpc_open
        - Branch String:   'lib/unixctl.c:593,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:593,9'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/unixctl.c:594,16'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/unixctl.c:582,36'
          Dst:             ovs_rundir
        - Src:             'lib/unixctl.c:582,22'
          Dst:             abs_file_name
        - Src:             'lib/unixctl.c:583,23'
          Dst:             xasprintf
        - Src:             'lib/unixctl.c:587,31'
          Dst:             stream_open
        - Src:             'lib/unixctl.c:587,13'
          Dst:             stream_open_block
        - Src:             'lib/unixctl.c:593,9'
          Dst:             vlog
        - Src:             'lib/unixctl.c:597,15'
          Dst:             jsonrpc_open
    - functionName:    unixctl_server_get_path
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 562
      functionLinenumberEnd: 563
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - server
      BBCount:         4
      ICount:          22
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:563,12'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:563,21'
              BranchSideFuncs: []
            - BranchSide:      'lib/unixctl.c:563,12'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    unixctl_server_destroy
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 546
      functionLinenumberEnd: 558
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - server
      BBCount:         13
      ICount:          82
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - kill_connection
        - pstream_close
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:547,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:547,9'
              BranchSideFuncs:
                - free
                - pstream_close
                - free
                - kill_connection
            - BranchSide:      'lib/unixctl.c:550,9'
              BranchSideFuncs:
                - free
                - pstream_close
                - free
                - kill_connection
        - Branch String:   'lib/unixctl.c:550,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:550,9'
              BranchSideFuncs:
                - free
                - pstream_close
                - free
                - kill_connection
            - BranchSide:      'lib/unixctl.c:550,9'
              BranchSideFuncs:
                - free
                - pstream_close
                - free
                - kill_connection
        - Branch String:   'lib/unixctl.c:550,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:551,29'
              BranchSideFuncs:
                - kill_connection
                - free
                - pstream_close
                - free
            - BranchSide:      'lib/unixctl.c:554,14'
              BranchSideFuncs:
                - free
                - pstream_close
                - free
      Callsites:
        - Src:             'lib/unixctl.c:551,13'
          Dst:             kill_connection
        - Src:             'lib/unixctl.c:555,9'
          Dst:             pstream_close
    - functionName:    kill_connection
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 483
      functionLinenumberEnd: 488
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - json_destroy
        - jsonrpc_close
        - ovs_list_remove
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:484,5'
          Dst:             ovs_list_remove
        - Src:             'lib/unixctl.c:485,5'
          Dst:             jsonrpc_close
        - Src:             'lib/unixctl.c:486,5'
          Dst:             json_destroy
    - functionName:    unixctl_server_wait
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 527
      functionLinenumberEnd: 541
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - server
      BBCount:         18
      ICount:          101
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - jsonrpc_get_backlog
        - jsonrpc_recv_wait
        - jsonrpc_wait
        - pstream_wait
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:530,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:531,9'
              BranchSideFuncs:
                - pstream_wait
                - jsonrpc_wait
                - jsonrpc_get_backlog
                - jsonrpc_recv_wait
            - BranchSide:      'lib/unixctl.c:534,18'
              BranchSideFuncs:
                - pstream_wait
                - jsonrpc_wait
                - jsonrpc_get_backlog
                - jsonrpc_recv_wait
        - Branch String:   'lib/unixctl.c:535,5'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:535,5'
              BranchSideFuncs:
                - jsonrpc_wait
                - jsonrpc_get_backlog
                - jsonrpc_recv_wait
            - BranchSide:      'lib/unixctl.c:535,5'
              BranchSideFuncs:
                - jsonrpc_wait
                - jsonrpc_get_backlog
                - jsonrpc_recv_wait
        - Branch String:   'lib/unixctl.c:535,5'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:535,5'
              BranchSideFuncs:
                - jsonrpc_wait
                - jsonrpc_get_backlog
                - jsonrpc_recv_wait
            - BranchSide:      'lib/unixctl.c:536,22'
              BranchSideFuncs:
                - jsonrpc_wait
                - jsonrpc_get_backlog
                - jsonrpc_recv_wait
        - Branch String:   'lib/unixctl.c:537,45'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:537,49'
              BranchSideFuncs:
                - jsonrpc_wait
                - jsonrpc_get_backlog
                - jsonrpc_recv_wait
            - BranchSide:      'lib/unixctl.c:540,5'
              BranchSideFuncs:
                - jsonrpc_wait
                - jsonrpc_get_backlog
                - jsonrpc_recv_wait
        - Branch String:   'lib/unixctl.c:537,13'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:538,31'
              BranchSideFuncs:
                - jsonrpc_wait
                - jsonrpc_get_backlog
                - jsonrpc_recv_wait
            - BranchSide:      'lib/unixctl.c:540,5'
              BranchSideFuncs:
                - jsonrpc_wait
                - jsonrpc_get_backlog
                - jsonrpc_recv_wait
      Callsites:
        - Src:             'lib/unixctl.c:534,5'
          Dst:             pstream_wait
        - Src:             'lib/unixctl.c:536,9'
          Dst:             jsonrpc_wait
        - Src:             'lib/unixctl.c:537,14'
          Dst:             jsonrpc_get_backlog
        - Src:             'lib/unixctl.c:538,13'
          Dst:             jsonrpc_recv_wait
    - functionName:    run_connection
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 479
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
      BBCount:         33
      ICount:          171
      EdgeCount:       42
      CyclomaticComplexity: 11
      functionsReached:
        - jsonrpc_get_backlog
        - jsonrpc_get_name
        - jsonrpc_get_status
        - jsonrpc_msg_destroy
        - jsonrpc_msg_type_to_string
        - jsonrpc_recv
        - jsonrpc_run
        - process_command
        - vlog_rate_limit
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:452,15'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:452,38'
              BranchSideFuncs: []
            - BranchSide:      'lib/unixctl.c:453,16'
              BranchSideFuncs: []
        - Branch String:   'lib/unixctl.c:452,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:453,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/unixctl.c:456,12'
              BranchSideFuncs:
                - jsonrpc_recv
                - jsonrpc_get_status
                - jsonrpc_msg_destroy
                - jsonrpc_get_name
                - jsonrpc_msg_type_to_string
                - vlog_rate_limit
                - process_command
        - Branch String:   'lib/unixctl.c:456,5'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:459,13'
              BranchSideFuncs:
                - jsonrpc_recv
                - jsonrpc_get_status
                - jsonrpc_msg_destroy
                - jsonrpc_get_name
                - jsonrpc_msg_type_to_string
                - vlog_rate_limit
                - process_command
            - BranchSide:      'lib/unixctl.c:478,12'
              BranchSideFuncs: []
        - Branch String:   'lib/unixctl.c:459,19'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:459,22'
              BranchSideFuncs: []
            - BranchSide:      'lib/unixctl.c:460,13'
              BranchSideFuncs: []
        - Branch String:   'lib/unixctl.c:459,13'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:460,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/unixctl.c:463,22'
              BranchSideFuncs:
                - jsonrpc_recv
                - jsonrpc_get_status
                - jsonrpc_msg_destroy
                - jsonrpc_get_name
                - jsonrpc_msg_type_to_string
                - vlog_rate_limit
                - process_command
        - Branch String:   'lib/unixctl.c:464,13'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:465,17'
              BranchSideFuncs:
                - jsonrpc_msg_destroy
                - jsonrpc_get_status
                - jsonrpc_recv
                - jsonrpc_get_name
                - jsonrpc_msg_type_to_string
                - vlog_rate_limit
                - process_command
            - BranchSide:      'lib/unixctl.c:475,17'
              BranchSideFuncs:
                - jsonrpc_get_status
                - jsonrpc_recv
                - jsonrpc_msg_destroy
                - jsonrpc_get_name
                - jsonrpc_msg_type_to_string
                - vlog_rate_limit
                - process_command
        - Branch String:   'lib/unixctl.c:465,17'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:466,33'
              BranchSideFuncs:
                - process_command
                - jsonrpc_msg_destroy
                - jsonrpc_get_status
                - jsonrpc_recv
                - jsonrpc_get_name
                - jsonrpc_msg_type_to_string
                - vlog_rate_limit
            - BranchSide:      'lib/unixctl.c:468,17'
              BranchSideFuncs:
                - jsonrpc_msg_destroy
                - jsonrpc_get_status
                - jsonrpc_recv
                - process_command
                - jsonrpc_get_name
                - jsonrpc_msg_type_to_string
                - vlog_rate_limit
        - Branch String:   'lib/unixctl.c:468,17'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:468,17'
              BranchSideFuncs:
                - jsonrpc_get_name
                - jsonrpc_msg_type_to_string
                - vlog_rate_limit
                - jsonrpc_msg_destroy
                - jsonrpc_get_status
                - jsonrpc_recv
                - process_command
            - BranchSide:      'lib/unixctl.c:471,23'
              BranchSideFuncs:
                - jsonrpc_msg_destroy
                - jsonrpc_get_status
                - jsonrpc_recv
                - jsonrpc_get_name
                - jsonrpc_msg_type_to_string
                - vlog_rate_limit
                - process_command
        - Branch String:   'lib/unixctl.c:475,17'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:475,25'
              BranchSideFuncs:
                - jsonrpc_recv
                - jsonrpc_get_status
                - jsonrpc_msg_destroy
                - jsonrpc_get_name
                - jsonrpc_msg_type_to_string
                - vlog_rate_limit
                - process_command
            - BranchSide:      'lib/unixctl.c:475,52'
              BranchSideFuncs:
                - jsonrpc_get_status
                - jsonrpc_recv
                - jsonrpc_msg_destroy
                - jsonrpc_get_name
                - jsonrpc_msg_type_to_string
                - vlog_rate_limit
                - process_command
      Callsites:
        - Src:             'lib/unixctl.c:450,5'
          Dst:             jsonrpc_run
        - Src:             'lib/unixctl.c:451,13'
          Dst:             jsonrpc_get_status
        - Src:             'lib/unixctl.c:452,18'
          Dst:             jsonrpc_get_backlog
        - Src:             'lib/unixctl.c:463,9'
          Dst:             jsonrpc_recv
        - Src:             'lib/unixctl.c:466,17'
          Dst:             process_command
        - Src:             'lib/unixctl.c:468,17'
          Dst:             jsonrpc_get_name
        - Src:             'lib/unixctl.c:468,17'
          Dst:             jsonrpc_msg_type_to_string
        - Src:             'lib/unixctl.c:468,17'
          Dst:             vlog_rate_limit
        - Src:             'lib/unixctl.c:473,13'
          Dst:             jsonrpc_msg_destroy
        - Src:             'lib/unixctl.c:475,33'
          Dst:             jsonrpc_get_status
    - functionName:    ovs_list_push_back
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
        - elem
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:205,5'
          Dst:             ovs_list_insert
    - functionName:    unixctl_server_run
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 492
      functionLinenumberEnd: 523
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - server
      BBCount:         34
      ICount:          190
      EdgeCount:       43
      CyclomaticComplexity: 11
      functionsReached:
        - jsonrpc_open
        - kill_connection
        - ovs_list_push_back
        - ovs_strerror
        - pstream_accept
        - pstream_get_name
        - run_connection
        - vlog_rate_limit
        - xzalloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:493,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:494,9'
              BranchSideFuncs:
                - run_connection
                - kill_connection
                - pstream_accept
                - xzalloc
                - ovs_list_push_back.2047
                - jsonrpc_open
                - pstream_get_name
                - ovs_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/unixctl.c:497,14'
              BranchSideFuncs:
                - run_connection
                - kill_connection
                - pstream_accept
                - xzalloc
                - ovs_list_push_back.2047
                - jsonrpc_open
                - pstream_get_name
                - ovs_strerror
                - vlog_rate_limit
        - Branch String:   'lib/unixctl.c:497,5'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:501,32'
              BranchSideFuncs:
                - pstream_accept
                - xzalloc
                - ovs_list_push_back.2047
                - jsonrpc_open
                - run_connection
                - kill_connection
                - pstream_get_name
                - ovs_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/unixctl.c:517,5'
              BranchSideFuncs:
                - run_connection
                - kill_connection
        - Branch String:   'lib/unixctl.c:502,13'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:503,41'
              BranchSideFuncs:
                - run_connection
                - kill_connection
                - pstream_accept
                - xzalloc
                - ovs_list_push_back.2047
                - jsonrpc_open
                - pstream_get_name
                - ovs_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/unixctl.c:507,20'
              BranchSideFuncs:
                - run_connection
                - kill_connection
                - pstream_accept
                - xzalloc
                - ovs_list_push_back.2047
                - jsonrpc_open
                - pstream_get_name
                - ovs_strerror
                - vlog_rate_limit
        - Branch String:   'lib/unixctl.c:507,20'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:508,13'
              BranchSideFuncs:
                - run_connection
                - kill_connection
            - BranchSide:      'lib/unixctl.c:510,13'
              BranchSideFuncs:
                - run_connection
                - kill_connection
                - pstream_accept
                - xzalloc
                - ovs_list_push_back.2047
                - jsonrpc_open
                - pstream_get_name
                - ovs_strerror
                - vlog_rate_limit
        - Branch String:   'lib/unixctl.c:517,5'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:517,5'
              BranchSideFuncs:
                - run_connection
                - kill_connection
            - BranchSide:      'lib/unixctl.c:517,5'
              BranchSideFuncs:
                - run_connection
                - kill_connection
        - Branch String:   'lib/unixctl.c:517,5'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:517,5'
              BranchSideFuncs:
                - run_connection
                - kill_connection
            - BranchSide:      'lib/unixctl.c:518,36'
              BranchSideFuncs:
                - run_connection
                - kill_connection
        - Branch String:   'lib/unixctl.c:519,19'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:519,22'
              BranchSideFuncs:
                - run_connection
                - kill_connection
            - BranchSide:      'lib/unixctl.c:522,5'
              BranchSideFuncs:
                - run_connection
                - kill_connection
        - Branch String:   'lib/unixctl.c:519,13'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:520,29'
              BranchSideFuncs:
                - kill_connection
                - run_connection
            - BranchSide:      'lib/unixctl.c:522,5'
              BranchSideFuncs:
                - run_connection
                - kill_connection
      Callsites:
        - Src:             'lib/unixctl.c:501,17'
          Dst:             pstream_accept
        - Src:             'lib/unixctl.c:503,41'
          Dst:             xzalloc
        - Src:             'lib/unixctl.c:504,13'
          Dst:             ovs_list_push_back
        - Src:             'lib/unixctl.c:505,25'
          Dst:             jsonrpc_open
        - Src:             'lib/unixctl.c:510,13'
          Dst:             pstream_get_name
        - Src:             'lib/unixctl.c:510,13'
          Dst:             ovs_strerror
        - Src:             'lib/unixctl.c:510,13'
          Dst:             vlog_rate_limit
        - Src:             'lib/unixctl.c:518,21'
          Dst:             run_connection
        - Src:             'lib/unixctl.c:520,13'
          Dst:             kill_connection
    - functionName:    ovs_list_init
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unixctl_set_options
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
        - argc
        - argv
        - aux
      BBCount:         16
      ICount:          116
      EdgeCount:       17
      CyclomaticComplexity: 3
      functionsReached:
        - abort
        - ovs_cmdl_parse_all
        - unixctl_command_reply
        - unixctl_command_reply_error
        - unixctl_output_fmt_from_string
        - xasprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:156,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:157,9'
              BranchSideFuncs:
                - unixctl_command_reply_error
                - free
                - free
            - BranchSide:      'lib/unixctl.c:160,17'
              BranchSideFuncs:
                - unixctl_command_reply
                - free
                - unixctl_output_fmt_from_string
                - xasprintf
                - unixctl_command_reply_error
                - free
                - free
                - abort
        - Branch String:   'lib/unixctl.c:160,5'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:161,57'
              BranchSideFuncs:
                - unixctl_output_fmt_from_string
                - xasprintf
                - unixctl_command_reply_error
                - free
                - free
                - unixctl_command_reply
                - free
                - abort
            - BranchSide:      'lib/unixctl.c:178,27'
              BranchSideFuncs:
                - unixctl_command_reply
                - free
        - Branch String:   'lib/unixctl.c:163,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:165,49'
              BranchSideFuncs:
                - unixctl_output_fmt_from_string
                - xasprintf
                - unixctl_command_reply_error
                - free
                - free
                - unixctl_command_reply
                - free
                - abort
            - BranchSide:      'lib/unixctl.c:174,13'
              BranchSideFuncs:
                - abort
        - Branch String:   'lib/unixctl.c:165,17'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:168,35'
              BranchSideFuncs:
                - unixctl_command_reply
                - free
                - unixctl_output_fmt_from_string
                - xasprintf
                - unixctl_command_reply_error
                - free
                - free
                - abort
            - BranchSide:      'lib/unixctl.c:171,13'
              BranchSideFuncs:
                - unixctl_command_reply
                - free
                - unixctl_output_fmt_from_string
                - xasprintf
                - unixctl_command_reply_error
                - free
                - free
                - abort
      Callsites:
        - Src:             'lib/unixctl.c:154,13'
          Dst:             ovs_cmdl_parse_all
        - Src:             'lib/unixctl.c:165,18'
          Dst:             unixctl_output_fmt_from_string
        - Src:             'lib/unixctl.c:167,25'
          Dst:             xasprintf
        - Src:             'lib/unixctl.c:174,13'
          Dst:             abort
        - Src:             'lib/unixctl.c:178,5'
          Dst:             unixctl_command_reply
        - Src:             'lib/unixctl.c:182,5'
          Dst:             unixctl_command_reply_error
    - functionName:    unixctl_output_fmt_from_string
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - string
        - fmt
      BBCount:         10
      ICount:          49
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcasecmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:84,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:85,10'
              BranchSideFuncs:
                - strcasecmp
            - BranchSide:      'lib/unixctl.c:86,28'
              BranchSideFuncs:
                - strcasecmp
        - Branch String:   'lib/unixctl.c:86,16'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:87,10'
              BranchSideFuncs: []
            - BranchSide:      'lib/unixctl.c:89,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/unixctl.c:84,10'
          Dst:             strcasecmp
        - Src:             'lib/unixctl.c:86,17'
          Dst:             strcasecmp
    - functionName:    unixctl_command_reply
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
        - result
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - json_object_create
        - json_object_put
        - json_object_put_string
        - json_string_create
        - unixctl_command_reply__
      functionUses:    14
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:268,51'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:268,60'
              BranchSideFuncs:
                - json_string_create
                - unixctl_command_reply__
                - json_object_create
                - json_object_put_string
                - json_object_put
            - BranchSide:      'lib/unixctl.c:268,32'
              BranchSideFuncs:
                - json_string_create
                - unixctl_command_reply__
                - json_object_create
                - json_object_put_string
                - json_object_put
        - Branch String:   'lib/unixctl.c:270,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:270,9'
              BranchSideFuncs:
                - json_object_create
                - json_object_put_string
                - json_object_put
                - unixctl_command_reply__
            - BranchSide:      'lib/unixctl.c:273,35'
              BranchSideFuncs:
                - json_object_create
                - json_object_put_string
                - json_object_put
                - unixctl_command_reply__
      Callsites:
        - Src:             'lib/unixctl.c:268,32'
          Dst:             json_string_create
        - Src:             'lib/unixctl.c:273,35'
          Dst:             json_object_create
        - Src:             'lib/unixctl.c:275,9'
          Dst:             json_object_put_string
        - Src:             'lib/unixctl.c:276,9'
          Dst:             json_object_put
        - Src:             'lib/unixctl.c:281,5'
          Dst:             unixctl_command_reply__
    - functionName:    strcasecmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unixctl_version
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
        - argc
        - argv
        - aux
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_get_program_version
        - unixctl_command_reply
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:138,33'
          Dst:             ovs_get_program_version
        - Src:             'lib/unixctl.c:138,5'
          Dst:             unixctl_command_reply
    - functionName:    unixctl_list_commands
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
        - argc
        - argv
        - aux
      BBCount:         23
      ICount:          168
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - ds_cstr
        - ds_destroy
        - ds_put_cstr
        - ds_put_format
        - hmap_first
        - hmap_next
        - json_object_create
        - json_object_put_string
        - shash_count
        - shash_sort
        - unixctl_command_get_output_format
        - unixctl_command_reply
        - unixctl_command_reply_json
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:98,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:99,38'
              BranchSideFuncs:
                - json_object_create
                - hmap_first.2039
                - unixctl_command_reply_json
                - hmap_next.2038
                - json_object_put_string
            - BranchSide:      'lib/unixctl.c:112,19'
              BranchSideFuncs:
                - shash_sort
                - ds_put_cstr
                - shash_count
                - free
                - ds_cstr
                - unixctl_command_reply
                - ds_destroy
                - ds_put_format
        - Branch String:   'lib/unixctl.c:102,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:102,9'
              BranchSideFuncs:
                - unixctl_command_reply_json
                - hmap_next.2038
                - json_object_put_string
            - BranchSide:      'lib/unixctl.c:102,9'
              BranchSideFuncs:
                - unixctl_command_reply_json
                - hmap_next.2038
                - json_object_put_string
        - Branch String:   'lib/unixctl.c:102,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:103,53'
              BranchSideFuncs:
                - hmap_next.2038
                - unixctl_command_reply_json
                - json_object_put_string
            - BranchSide:      'lib/unixctl.c:110,36'
              BranchSideFuncs:
                - unixctl_command_reply_json
        - Branch String:   'lib/unixctl.c:105,17'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:106,40'
              BranchSideFuncs:
                - json_object_put_string
                - hmap_next.2038
                - unixctl_command_reply_json
            - BranchSide:      'lib/unixctl.c:109,9'
              BranchSideFuncs:
                - hmap_next.2038
                - unixctl_command_reply_json
                - json_object_put_string
        - Branch String:   'lib/unixctl.c:118,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:119,45'
              BranchSideFuncs:
                - shash_count
                - free
                - ds_cstr
                - unixctl_command_reply
                - ds_destroy
                - ds_put_format
            - BranchSide:      'lib/unixctl.c:127,14'
              BranchSideFuncs:
                - free
                - ds_cstr
                - unixctl_command_reply
                - ds_destroy
        - Branch String:   'lib/unixctl.c:122,17'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:123,52'
              BranchSideFuncs:
                - ds_put_format
                - shash_count
                - free
                - ds_cstr
                - unixctl_command_reply
                - ds_destroy
            - BranchSide:      'lib/unixctl.c:126,9'
              BranchSideFuncs:
                - shash_count
                - free
                - ds_cstr
                - unixctl_command_reply
                - ds_destroy
                - ds_put_format
      Callsites:
        - Src:             'lib/unixctl.c:98,9'
          Dst:             unixctl_command_get_output_format
        - Src:             'lib/unixctl.c:99,38'
          Dst:             json_object_create
        - Src:             'lib/unixctl.c:102,9'
          Dst:             hmap_first
        - Src:             'lib/unixctl.c:106,17'
          Dst:             json_object_put_string
        - Src:             'lib/unixctl.c:102,9'
          Dst:             hmap_next
        - Src:             'lib/unixctl.c:110,9'
          Dst:             unixctl_command_reply_json
        - Src:             'lib/unixctl.c:113,43'
          Dst:             shash_sort
        - Src:             'lib/unixctl.c:116,9'
          Dst:             ds_put_cstr
        - Src:             'lib/unixctl.c:118,25'
          Dst:             shash_count
        - Src:             'lib/unixctl.c:123,17'
          Dst:             ds_put_format
        - Src:             'lib/unixctl.c:129,37'
          Dst:             ds_cstr
        - Src:             'lib/unixctl.c:129,9'
          Dst:             unixctl_command_reply
        - Src:             'lib/unixctl.c:130,9'
          Dst:             ds_destroy
    - functionName:    unixctl_command_get_output_format
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unixctl_command_reply_json
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 293
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
        - body
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unixctl_command_reply__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unixctl.c:295,5'
          Dst:             unixctl_command_reply__
    - functionName:    unixctl_server_create
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - path
        - serverp
      BBCount:         14
      ICount:          124
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - abs_file_name
        - getpid
        - ovs_error
        - ovs_list_init
        - ovs_rundir
        - pstream_open
        - strcmp
        - unixctl_command_register
        - unixctl_list_commands
        - unixctl_set_options
        - unixctl_version
        - xasprintf
        - xmalloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:341,14'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:341,25'
              BranchSideFuncs:
                - strcmp
                - getpid
                - ovs_rundir
                - xasprintf
                - xasprintf
                - pstream_open
                - free
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - xmalloc
                - ovs_list_init.2049
                - ovs_error
                - free
                - ovs_rundir
                - abs_file_name
            - BranchSide:      'lib/unixctl.c:351,20'
              BranchSideFuncs:
                - getpid
                - ovs_rundir
                - xasprintf
                - xasprintf
                - pstream_open
                - free
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - xmalloc
                - ovs_list_init.2049
                - ovs_error
                - free
                - ovs_rundir
                - abs_file_name
        - Branch String:   'lib/unixctl.c:341,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:342,9'
              BranchSideFuncs:
                - getpid
                - ovs_rundir
                - xasprintf
                - xasprintf
                - pstream_open
                - free
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - xmalloc
                - ovs_list_init.2049
                - ovs_error
                - free
                - ovs_rundir
                - abs_file_name
            - BranchSide:      'lib/unixctl.c:351,20'
              BranchSideFuncs:
                - getpid
                - ovs_rundir
                - xasprintf
                - xasprintf
                - pstream_open
                - free
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - xmalloc
                - ovs_list_init.2049
                - ovs_error
                - free
                - ovs_rundir
                - abs_file_name
        - Branch String:   'lib/unixctl.c:353,12'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:353,33'
              BranchSideFuncs:
                - ovs_rundir
                - abs_file_name
                - xasprintf
                - pstream_open
                - free
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - xmalloc
                - ovs_list_init.2049
                - ovs_error
                - free
            - BranchSide:      'lib/unixctl.c:355,41'
              BranchSideFuncs:
                - ovs_rundir
                - xasprintf
                - xasprintf
                - pstream_open
                - free
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - xmalloc
                - ovs_list_init.2049
                - ovs_error
                - free
        - Branch String:   'lib/unixctl.c:362,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:363,19'
              BranchSideFuncs:
                - ovs_error
                - free
            - BranchSide:      'lib/unixctl.c:368,5'
              BranchSideFuncs:
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - xmalloc
                - ovs_list_init.2049
      Callsites:
        - Src:             'lib/unixctl.c:341,18'
          Dst:             strcmp
        - Src:             'lib/unixctl.c:351,20'
          Dst:             getpid
        - Src:             'lib/unixctl.c:353,33'
          Dst:             ovs_rundir
        - Src:             'lib/unixctl.c:353,19'
          Dst:             abs_file_name
        - Src:             'lib/unixctl.c:355,41'
          Dst:             ovs_rundir
        - Src:             'lib/unixctl.c:355,14'
          Dst:             xasprintf
        - Src:             'lib/unixctl.c:358,24'
          Dst:             xasprintf
        - Src:             'lib/unixctl.c:359,17'
          Dst:             pstream_open
        - Src:             'lib/unixctl.c:363,9'
          Dst:             ovs_error
        - Src:             'lib/unixctl.c:368,5'
          Dst:             unixctl_command_register
        - Src:             'lib/unixctl.c:368,5'
          Dst:             unixctl_list_commands
        - Src:             'lib/unixctl.c:370,5'
          Dst:             unixctl_command_register
        - Src:             'lib/unixctl.c:370,5'
          Dst:             unixctl_version
        - Src:             'lib/unixctl.c:371,5'
          Dst:             unixctl_command_register
        - Src:             'lib/unixctl.c:371,5'
          Dst:             unixctl_set_options
        - Src:             'lib/unixctl.c:374,37'
          Dst:             xmalloc
        - Src:             'lib/unixctl.c:377,5'
          Dst:             ovs_list_init
    - functionName:    getpid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unixctl_command_register
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - usage
        - min_args
        - max_args
        - cb
        - aux
      BBCount:         9
      ICount:          90
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - shash_add
        - shash_find_data
        - xmalloc
      functionUses:    15
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:206,5'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:206,5'
              BranchSideFuncs:
                - xmalloc
                - shash_add
            - BranchSide:      'lib/unixctl.c:206,5'
              BranchSideFuncs:
                - xmalloc
                - shash_add
        - Branch String:   'lib/unixctl.c:208,9'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:209,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/unixctl.c:212,15'
              BranchSideFuncs:
                - xmalloc
                - shash_add
      Callsites:
        - Src:             'lib/unixctl.c:204,38'
          Dst:             shash_find_data
        - Src:             'lib/unixctl.c:212,15'
          Dst:             xmalloc
        - Src:             'lib/unixctl.c:218,5'
          Dst:             shash_add
    - functionName:    unixctl_output_fmt_to_string
      functionSourceFile: '/src/openvswitch/lib/unixctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - fmt
      BBCount:         5
      ICount:          28
      EdgeCount:       8
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/unixctl.c:73,5'
          Branch Sides:
            - BranchSide:      'lib/unixctl.c:74,35'
              BranchSideFuncs: []
            - BranchSide:      'lib/unixctl.c:75,35'
              BranchSideFuncs: []
            - BranchSide:      'lib/unixctl.c:76,14'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    init_this_module_util
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:49,1'
          Branch Sides:
            - BranchSide:      'lib/util.c:49,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/util.c:49,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/util.c:49,1'
          Dst:             vlog_insert_module
    - functionName:    util_xalloc_init_coverage
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:58,1'
          Branch Sides:
            - BranchSide:      'lib/util.c:58,1'
              BranchSideFuncs:
                - coverage_counter_register
            - BranchSide:      'lib/util.c:58,1'
              BranchSideFuncs:
                - coverage_counter_register
      Callsites:
        - Src:             'lib/util.c:58,1'
          Dst:             coverage_counter_register
    - functionName:    util_xalloc_count
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_util_xalloc_get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:58,1'
          Branch Sides:
            - BranchSide:      'lib/util.c:58,1'
              BranchSideFuncs:
                - counter_util_xalloc_get
            - BranchSide:      'lib/util.c:58,1'
              BranchSideFuncs:
                - counter_util_xalloc_get
      Callsites:
        - Src:             'lib/util.c:58,1'
          Dst:             counter_util_xalloc_get
    - functionName:    counter_util_xalloc_get
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_util_xalloc_get_unsafe
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/util.c:58,1'
          Branch Sides:
            - BranchSide:      'lib/util.c:58,1'
              BranchSideFuncs:
                - counter_util_xalloc_get_unsafe
            - BranchSide:      'lib/util.c:58,1'
              BranchSideFuncs:
                - counter_util_xalloc_get_unsafe
      Callsites:
        - Src:             'lib/util.c:58,1'
          Dst:             counter_util_xalloc_get_unsafe
    - functionName:    counter_util_xalloc_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bitmap_set_n__
      functionSourceFile: '/src/openvswitch/lib/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - bitmap
        - start
        - n
        - value
      BBCount:         6
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - bitmap_unit__
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/bitmap.h:120,9'
          Branch Sides:
            - BranchSide:      'lib/bitmap.h:121,42'
              BranchSideFuncs:
                - bitmap_unit__
            - BranchSide:      'lib/bitmap.h:123,43'
              BranchSideFuncs:
                - bitmap_unit__
      Callsites:
        - Src:             'lib/bitmap.h:121,10'
          Dst:             bitmap_unit__
        - Src:             'lib/bitmap.h:123,10'
          Dst:             bitmap_unit__
    - functionName:    bitmap_unit__
      functionSourceFile: '/src/openvswitch/lib/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - bitmap
        - offset
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bitmap_bit__
      functionSourceFile: '/src/openvswitch/lib/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - offset
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bitmap_set_multiple
      functionSourceFile: '/src/openvswitch/lib/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - bitmap
        - start
        - count
        - value
      BBCount:         18
      ICount:          124
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - bitmap_set_n__
        - bitmap_unit__
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/bitmap.h:133,15'
          Branch Sides:
            - BranchSide:      'lib/bitmap.h:133,18'
              BranchSideFuncs:
                - bitmap_set_n__
                - bitmap_unit__
                - bitmap_set_n__
            - BranchSide:      'lib/bitmap.h:140,5'
              BranchSideFuncs:
                - bitmap_set_n__
                - bitmap_unit__
        - Branch String:   'lib/bitmap.h:133,9'
          Branch Sides:
            - BranchSide:      'lib/bitmap.h:134,20'
              BranchSideFuncs:
                - bitmap_set_n__
                - bitmap_set_n__
                - bitmap_unit__
            - BranchSide:      'lib/bitmap.h:140,5'
              BranchSideFuncs:
                - bitmap_set_n__
                - bitmap_unit__
        - Branch String:   'lib/bitmap.h:134,20'
          Branch Sides:
            - BranchSide:      'lib/bitmap.h:134,16'
              BranchSideFuncs:
                - bitmap_set_n__
                - bitmap_set_n__
                - bitmap_unit__
            - BranchSide:      'lib/bitmap.h:134,16'
              BranchSideFuncs:
                - bitmap_set_n__
                - bitmap_set_n__
                - bitmap_unit__
        - Branch String:   'lib/bitmap.h:140,5'
          Branch Sides:
            - BranchSide:      'lib/bitmap.h:141,57'
              BranchSideFuncs:
                - bitmap_unit__
                - bitmap_set_n__
            - BranchSide:      'lib/bitmap.h:144,9'
              BranchSideFuncs:
                - bitmap_set_n__
        - Branch String:   'lib/bitmap.h:144,9'
          Branch Sides:
            - BranchSide:      'lib/bitmap.h:144,9'
              BranchSideFuncs:
                - bitmap_set_n__
            - BranchSide:      'lib/bitmap.h:145,24'
              BranchSideFuncs:
                - bitmap_set_n__
      Callsites:
        - Src:             'lib/bitmap.h:136,9'
          Dst:             bitmap_set_n__
        - Src:             'lib/bitmap.h:141,10'
          Dst:             bitmap_unit__
        - Src:             'lib/bitmap.h:145,9'
          Dst:             bitmap_set_n__
    - functionName:    bitmap_set1
      functionSourceFile: '/src/openvswitch/lib/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - bitmap
        - offset
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - bitmap_bit__
        - bitmap_unit__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/bitmap.h:97,39'
          Dst:             bitmap_bit__
        - Src:             'lib/bitmap.h:97,6'
          Dst:             bitmap_unit__
    - functionName:    bitmap_is_set
      functionSourceFile: '/src/openvswitch/lib/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - bitmap
        - offset
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - bitmap_bit__
        - bitmap_unit__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/bitmap.h:91,14'
          Dst:             bitmap_unit__
        - Src:             'lib/bitmap.h:91,46'
          Dst:             bitmap_bit__
    - functionName:    parse_scanset
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2099
      functionLinenumberEnd: 2121
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - p_
        - set
        - complemented
      BBCount:         23
      ICount:          166
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - bitmap_set1
        - bitmap_set_multiple
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.c:2105,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:2106,21'
              BranchSideFuncs:
                - bitmap_set1
                - bitmap_set1
                - bitmap_set_multiple
            - BranchSide:      'lib/util.c:2110,5'
              BranchSideFuncs:
                - bitmap_set1
                - bitmap_set_multiple
        - Branch String:   'lib/util.c:2110,15'
          Branch Sides:
            - BranchSide:      'lib/util.c:2110,19'
              BranchSideFuncs:
                - bitmap_set1
                - bitmap_set_multiple
            - BranchSide:      'lib/util.c:2110,5'
              BranchSideFuncs:
                - bitmap_set1
                - bitmap_set_multiple
        - Branch String:   'lib/util.c:2110,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:2111,13'
              BranchSideFuncs:
                - bitmap_set1
                - bitmap_set_multiple
            - BranchSide:      'lib/util.c:2118,10'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:2111,25'
          Branch Sides:
            - BranchSide:      'lib/util.c:2111,28'
              BranchSideFuncs:
                - bitmap_set1
                - bitmap_set_multiple
            - BranchSide:      'lib/util.c:2115,25'
              BranchSideFuncs:
                - bitmap_set1
                - bitmap_set_multiple
        - Branch String:   'lib/util.c:2111,40'
          Branch Sides:
            - BranchSide:      'lib/util.c:2111,43'
              BranchSideFuncs:
                - bitmap_set1
                - bitmap_set_multiple
            - BranchSide:      'lib/util.c:2115,25'
              BranchSideFuncs:
                - bitmap_set1
                - bitmap_set_multiple
        - Branch String:   'lib/util.c:2111,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:2112,33'
              BranchSideFuncs:
                - bitmap_set_multiple
                - bitmap_set1
            - BranchSide:      'lib/util.c:2115,25'
              BranchSideFuncs:
                - bitmap_set1
                - bitmap_set_multiple
        - Branch String:   'lib/util.c:2118,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:2118,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2119,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:2106,9'
          Dst:             bitmap_set1
        - Src:             'lib/util.c:2112,13'
          Dst:             bitmap_set_multiple
        - Src:             'lib/util.c:2115,13'
          Dst:             bitmap_set1
    - functionName:    scan_output_string
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2071
      functionLinenumberEnd: 2077
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - spec
        - s
        - n
        - args
      BBCount:         7
      ICount:          64
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/util.c:2072,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:2072,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2073,21'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:2073,21'
          Branch Sides:
            - BranchSide:      'lib/util.c:2073,21'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2073,21'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    skip_digits
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2005
      functionLinenumberEnd: 2009
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         7
      ICount:          40
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/util.c:2006,22'
          Branch Sides:
            - BranchSide:      'lib/util.c:2006,26'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2006,5'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:2006,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:2007,10'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2009,12'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    scan_chars
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2152
      functionLinenumberEnd: 2162
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - spec
        - args
      BBCount:         15
      ICount:          102
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.c:2153,22'
          Branch Sides:
            - BranchSide:      'lib/util.c:2153,18'
              BranchSideFuncs:
                - strlen
            - BranchSide:      'lib/util.c:2153,52'
              BranchSideFuncs:
                - strlen
        - Branch String:   'lib/util.c:2155,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:2156,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2158,9'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:2158,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:2159,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2161,12'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:2159,16'
          Branch Sides:
            - BranchSide:      'lib/util.c:2161,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2161,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:2155,9'
          Dst:             strlen
    - functionName:    scan_set
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2127
      functionLinenumberEnd: 2148
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - spec
        - pp
        - args
      BBCount:         14
      ICount:          117
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - bitmap_is_set
        - parse_scanset
        - scan_output_string
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.c:2139,12'
          Branch Sides:
            - BranchSide:      'lib/util.c:2138,5'
              BranchSideFuncs:
                - bitmap_is_set
                - scan_output_string
            - BranchSide:      'lib/util.c:2139,29'
              BranchSideFuncs:
                - bitmap_is_set
                - scan_output_string
        - Branch String:   'lib/util.c:2140,12'
          Branch Sides:
            - BranchSide:      'lib/util.c:2138,5'
              BranchSideFuncs:
                - scan_output_string
                - bitmap_is_set
            - BranchSide:      'lib/util.c:2140,15'
              BranchSideFuncs:
                - scan_output_string
                - bitmap_is_set
        - Branch String:   'lib/util.c:2138,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:2141,10'
              BranchSideFuncs:
                - scan_output_string
                - bitmap_is_set
            - BranchSide:      'lib/util.c:2143,10'
              BranchSideFuncs:
                - scan_output_string
        - Branch String:   'lib/util.c:2143,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:2144,9'
              BranchSideFuncs:
                - scan_output_string
            - BranchSide:      'lib/util.c:2146,24'
              BranchSideFuncs:
                - scan_output_string
      Callsites:
        - Src:             'lib/util.c:2134,11'
          Dst:             parse_scanset
        - Src:             'lib/util.c:2139,15'
          Dst:             bitmap_is_set
        - Src:             'lib/util.c:2146,5'
          Dst:             scan_output_string
    - functionName:    scan_string
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2081
      functionLinenumberEnd: 2095
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - spec
        - args
      BBCount:         16
      ICount:          99
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - __ctype_b_loc
        - scan_output_string
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.c:2084,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:2085,14'
              BranchSideFuncs:
                - scan_output_string
                - __ctype_b_loc
            - BranchSide:      'lib/util.c:2089,10'
              BranchSideFuncs:
                - scan_output_string
        - Branch String:   'lib/util.c:2085,19'
          Branch Sides:
            - BranchSide:      'lib/util.c:2085,22'
              BranchSideFuncs:
                - __ctype_b_loc
                - scan_output_string
            - BranchSide:      'lib/util.c:2086,13'
              BranchSideFuncs:
                - scan_output_string
        - Branch String:   'lib/util.c:2085,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:2086,13'
              BranchSideFuncs:
                - scan_output_string
            - BranchSide:      'lib/util.c:2088,5'
              BranchSideFuncs:
                - scan_output_string
                - __ctype_b_loc
        - Branch String:   'lib/util.c:2089,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:2090,9'
              BranchSideFuncs:
                - scan_output_string
            - BranchSide:      'lib/util.c:2093,24'
              BranchSideFuncs:
                - scan_output_string
      Callsites:
        - Src:             'lib/util.c:2085,22'
          Dst:             __ctype_b_loc
        - Src:             'lib/util.c:2093,5'
          Dst:             scan_output_string
    - functionName:    scan_float
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2014
      functionLinenumberEnd: 2065
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - spec
        - args
      BBCount:         45
      ICount:          319
      EdgeCount:       53
      CyclomaticComplexity: 10
      functionsReached:
        - abort
        - skip_digits
        - strtold
        - xmemdup0
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.c:2021,20'
          Branch Sides:
            - BranchSide:      'lib/util.c:2021,20'
              BranchSideFuncs:
                - skip_digits
                - xmemdup0
                - strtold
                - free
                - abort
                - skip_digits
                - skip_digits
            - BranchSide:      'lib/util.c:2021,24'
              BranchSideFuncs:
                - skip_digits
                - xmemdup0
                - strtold
                - free
                - abort
                - skip_digits
                - skip_digits
        - Branch String:   'lib/util.c:2023,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:2024,25'
              BranchSideFuncs:
                - skip_digits
                - xmemdup0
                - strtold
                - free
                - abort
                - skip_digits
            - BranchSide:      'lib/util.c:2026,10'
              BranchSideFuncs:
                - xmemdup0
                - strtold
                - free
                - abort
                - skip_digits
        - Branch String:   'lib/util.c:2026,19'
          Branch Sides:
            - BranchSide:      'lib/util.c:2026,23'
              BranchSideFuncs:
                - skip_digits
                - xmemdup0
                - strtold
                - free
                - abort
            - BranchSide:      'lib/util.c:2027,10'
              BranchSideFuncs:
                - skip_digits
                - xmemdup0
                - strtold
                - free
                - abort
        - Branch String:   'lib/util.c:2026,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:2027,10'
              BranchSideFuncs:
                - skip_digits
                - xmemdup0
                - strtold
                - free
                - abort
            - BranchSide:      'lib/util.c:2032,9'
              BranchSideFuncs:
                - xmemdup0
                - strtold
                - free
                - abort
        - Branch String:   'lib/util.c:2028,24'
          Branch Sides:
            - BranchSide:      'lib/util.c:2028,28'
              BranchSideFuncs:
                - skip_digits
                - xmemdup0
                - strtold
                - free
                - abort
            - BranchSide:      'lib/util.c:2032,9'
              BranchSideFuncs:
                - skip_digits
                - xmemdup0
                - strtold
                - free
                - abort
        - Branch String:   'lib/util.c:2032,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:2033,13'
              BranchSideFuncs:
                - xmemdup0
                - strtold
                - free
                - abort
            - BranchSide:      'lib/util.c:2036,21'
              BranchSideFuncs:
                - xmemdup0
                - strtold
                - free
                - abort
        - Branch String:   'lib/util.c:2040,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:2041,9'
              BranchSideFuncs:
                - abort
            - BranchSide:      'lib/util.c:2044,13'
              BranchSideFuncs:
                - abort
        - Branch String:   'lib/util.c:2044,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:2046,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2048,35'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2051,36'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2054,41'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2062,9'
              BranchSideFuncs:
                - abort
            - BranchSide:      'lib/util.c:2062,9'
              BranchSideFuncs:
                - abort
            - BranchSide:      'lib/util.c:2062,9'
              BranchSideFuncs:
                - abort
            - BranchSide:      'lib/util.c:2062,9'
              BranchSideFuncs:
                - abort
            - BranchSide:      'lib/util.c:2062,9'
              BranchSideFuncs:
                - abort
            - BranchSide:      'lib/util.c:2064,12'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:2048,10'
          Branch Sides:
            - BranchSide:      'lib/util.c:2064,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2064,12'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:2051,10'
          Branch Sides:
            - BranchSide:      'lib/util.c:2064,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2064,12'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:2054,10'
          Branch Sides:
            - BranchSide:      'lib/util.c:2064,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2064,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:2022,9'
          Dst:             skip_digits
        - Src:             'lib/util.c:2024,13'
          Dst:             skip_digits
        - Src:             'lib/util.c:2029,13'
          Dst:             skip_digits
        - Src:             'lib/util.c:2036,12'
          Dst:             xmemdup0
        - Src:             'lib/util.c:2037,13'
          Dst:             strtold
        - Src:             'lib/util.c:2062,9'
          Dst:             abort
    - functionName:    xmemdup0
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - p_
        - length
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xmalloc
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:197,15'
          Dst:             xmalloc
    - functionName:    strtold
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xmalloc
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - size
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - util_xalloc_add
        - xmalloc__
      functionUses:    59
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:175,5'
          Dst:             util_xalloc_add
        - Src:             'lib/util.c:176,12'
          Dst:             xmalloc__
    - functionName:    util_xalloc_add
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - n
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_util_xalloc_get
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:58,1'
          Dst:             counter_util_xalloc_get
    - functionName:    xmalloc__
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - size
      BBCount:         8
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - out_of_memory
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.c:141,22'
          Branch Sides:
            - BranchSide:      'lib/util.c:141,29'
              BranchSideFuncs:
                - malloc
                - out_of_memory
            - BranchSide:      'lib/util.c:141,15'
              BranchSideFuncs:
                - malloc
                - out_of_memory
        - Branch String:   'lib/util.c:142,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:143,9'
              BranchSideFuncs:
                - out_of_memory
            - BranchSide:      'lib/util.c:145,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:143,9'
          Dst:             out_of_memory
    - functionName:    out_of_memory
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          2
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_abort
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:119,5'
          Dst:             ovs_abort
    - functionName:    ovs_abort
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 437
      functionLinenumberEnd: 442
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - err_no
        - format
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_abort_valist
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:442,5'
          Dst:             ovs_abort_valist
    - functionName:    ovs_abort_valist
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 450
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - err_no
        - format
        - args
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - abort
        - ovs_error_valist
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:449,5'
          Dst:             ovs_error_valist
        - Src:             'lib/util.c:450,5'
          Dst:             abort
    - functionName:    ovs_error_valist
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 495
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - err_no
        - format
        - args
      BBCount:         9
      ICount:          75
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - fprintf
        - get_subprogram_name
        - ovs_retval_to_string
        - putc
        - vfprintf
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/util.c:499,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:500,17'
              BranchSideFuncs:
                - fprintf
                - vfprintf
                - putc
                - __errno_location
                - ovs_retval_to_string
                - fprintf
            - BranchSide:      'lib/util.c:502,17'
              BranchSideFuncs:
                - fprintf
                - vfprintf
                - putc
                - __errno_location
                - ovs_retval_to_string
                - fprintf
        - Branch String:   'lib/util.c:506,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:506,9'
              BranchSideFuncs:
                - ovs_retval_to_string
                - fprintf
                - putc
                - __errno_location
            - BranchSide:      'lib/util.c:507,17'
              BranchSideFuncs:
                - ovs_retval_to_string
                - fprintf
                - putc
                - __errno_location
      Callsites:
        - Src:             'lib/util.c:496,35'
          Dst:             get_subprogram_name
        - Src:             'lib/util.c:497,22'
          Dst:             __errno_location
        - Src:             'lib/util.c:500,9'
          Dst:             fprintf
        - Src:             'lib/util.c:502,9'
          Dst:             fprintf
        - Src:             'lib/util.c:505,5'
          Dst:             vfprintf
        - Src:             'lib/util.c:507,34'
          Dst:             ovs_retval_to_string
        - Src:             'lib/util.c:507,9'
          Dst:             fprintf
        - Src:             'lib/util.c:509,5'
          Dst:             putc
        - Src:             'lib/util.c:511,5'
          Dst:             __errno_location
    - functionName:    get_subprogram_name
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 638
      functionLinenumberEnd: 640
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - subprogram_name_get
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/util.c:639,24'
          Branch Sides:
            - BranchSide:      'lib/util.c:639,17'
              BranchSideFuncs:
                - subprogram_name_get
            - BranchSide:      'lib/util.c:639,24'
              BranchSideFuncs:
                - subprogram_name_get
        - Branch String:   'lib/util.c:640,12'
          Branch Sides:
            - BranchSide:      'lib/util.c:640,19'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:640,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:639,24'
          Dst:             subprogram_name_get
    - functionName:    fprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    16
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vfprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_retval_to_string
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 528
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - retval
      BBCount:         9
      ICount:          39
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_strerror
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/util.c:526,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:526,13'
              BranchSideFuncs:
                - ovs_strerror
            - BranchSide:      'lib/util.c:527,15'
              BranchSideFuncs:
                - ovs_strerror
        - Branch String:   'lib/util.c:527,15'
          Branch Sides:
            - BranchSide:      'lib/util.c:526,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:528,28'
              BranchSideFuncs:
                - ovs_strerror
      Callsites:
        - Src:             'lib/util.c:528,15'
          Dst:             ovs_strerror
    - functionName:    putc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_strerror
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 537
      functionLinenumberEnd: 580
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - error
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - strerror_buffer_get
        - strerror_r
      functionUses:    115
      BranchProfiles:
        - Branch String:   'lib/util.c:543,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:555,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:558,18'
              BranchSideFuncs:
                - __errno_location
                - strerror_buffer_get
                - strerror_r
                - __errno_location
      Callsites:
        - Src:             'lib/util.c:558,18'
          Dst:             __errno_location
        - Src:             'lib/util.c:559,14'
          Dst:             strerror_buffer_get
        - Src:             'lib/util.c:565,9'
          Dst:             strerror_r
        - Src:             'lib/util.c:577,5'
          Dst:             __errno_location
    - functionName:    strerror_buffer_get
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strerror_buffer_get_unsafe
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.c:74,1'
          Branch Sides:
            - BranchSide:      'lib/util.c:74,1'
              BranchSideFuncs:
                - strerror_buffer_get_unsafe
            - BranchSide:      'lib/util.c:74,1'
              BranchSideFuncs:
                - strerror_buffer_get_unsafe
      Callsites:
        - Src:             'lib/util.c:74,1'
          Dst:             strerror_buffer_get_unsafe
    - functionName:    strerror_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strerror_buffer_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    subprogram_name_get
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - subprogram_name_get_unsafe
        - subprogram_name_init
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.c:65,1'
          Branch Sides:
            - BranchSide:      'lib/util.c:65,1'
              BranchSideFuncs:
                - subprogram_name_init
                - subprogram_name_get_unsafe
            - BranchSide:      'lib/util.c:65,1'
              BranchSideFuncs:
                - subprogram_name_init
                - subprogram_name_get_unsafe
      Callsites:
        - Src:             'lib/util.c:65,1'
          Dst:             subprogram_name_init
        - Src:             'lib/util.c:65,1'
          Dst:             subprogram_name_get_unsafe
    - functionName:    subprogram_name_init
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_once
        - subprogram_name_once_init
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/util.c:65,1'
          Branch Sides:
            - BranchSide:      'lib/util.c:65,1'
              BranchSideFuncs:
                - pthread_once
            - BranchSide:      'lib/util.c:65,1'
              BranchSideFuncs:
                - pthread_once
      Callsites:
        - Src:             'lib/util.c:65,1'
          Dst:             pthread_once
        - Src:             'lib/util.c:65,1'
          Dst:             subprogram_name_once_init
    - functionName:    subprogram_name_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_getspecific
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/util.c:65,1'
          Branch Sides:
            - BranchSide:      'lib/util.c:65,1'
              BranchSideFuncs:
                - pthread_getspecific
            - BranchSide:      'lib/util.c:65,1'
              BranchSideFuncs:
                - pthread_getspecific
      Callsites:
        - Src:             'lib/util.c:65,1'
          Dst:             pthread_getspecific
    - functionName:    subprogram_name_once_init
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         5
      ICount:          23
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - abort
        - pthread_key_create
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.c:65,1'
          Branch Sides:
            - BranchSide:      'lib/util.c:65,1'
              BranchSideFuncs:
                - pthread_key_create
                - abort
            - BranchSide:      'lib/util.c:65,1'
              BranchSideFuncs:
                - pthread_key_create
                - abort
        - Branch String:   'lib/util.c:65,1'
          Branch Sides:
            - BranchSide:      'lib/util.c:65,1'
              BranchSideFuncs:
                - abort
            - BranchSide:      'lib/util.c:65,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:65,1'
          Dst:             pthread_key_create
        - Src:             'lib/util.c:65,1'
          Dst:             abort
    - functionName:    scan_int
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1932
      functionLinenumberEnd: 2001
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - spec
        - base
        - args
      BBCount:         75
      ICount:          501
      EdgeCount:       95
      CyclomaticComplexity: 22
      functionsReached:
        - hexit_value
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/util.c:1939,20'
          Branch Sides:
            - BranchSide:      'lib/util.c:1939,20'
              BranchSideFuncs:
                - hexit_value
            - BranchSide:      'lib/util.c:1939,24'
              BranchSideFuncs:
                - hexit_value
        - Branch String:   'lib/util.c:1941,16'
          Branch Sides:
            - BranchSide:      'lib/util.c:1941,19'
              BranchSideFuncs:
                - hexit_value
            - BranchSide:      'lib/util.c:1941,35'
              BranchSideFuncs:
                - hexit_value
        - Branch String:   'lib/util.c:1941,31'
          Branch Sides:
            - BranchSide:      'lib/util.c:1941,35'
              BranchSideFuncs:
                - hexit_value
            - BranchSide:      'lib/util.c:1944,17'
              BranchSideFuncs:
                - hexit_value
        - Branch String:   'lib/util.c:1941,44'
          Branch Sides:
            - BranchSide:      'lib/util.c:1941,48'
              BranchSideFuncs:
                - hexit_value
            - BranchSide:      'lib/util.c:1944,17'
              BranchSideFuncs:
                - hexit_value
        - Branch String:   'lib/util.c:1941,60'
          Branch Sides:
            - BranchSide:      'lib/util.c:1941,63'
              BranchSideFuncs:
                - hexit_value
            - BranchSide:      'lib/util.c:1942,14'
              BranchSideFuncs:
                - hexit_value
        - Branch String:   'lib/util.c:1941,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1942,14'
              BranchSideFuncs:
                - hexit_value
            - BranchSide:      'lib/util.c:1944,17'
              BranchSideFuncs:
                - hexit_value
        - Branch String:   'lib/util.c:1948,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1949,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1952,11'
              BranchSideFuncs:
                - hexit_value
        - Branch String:   'lib/util.c:1954,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:1955,34'
              BranchSideFuncs:
                - hexit_value
            - BranchSide:      'lib/util.c:1964,10'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1957,23'
          Branch Sides:
            - BranchSide:      'lib/util.c:1957,26'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1958,13'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1957,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1958,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1960,17'
              BranchSideFuncs:
                - hexit_value
        - Branch String:   'lib/util.c:1964,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1965,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1968,9'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1968,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1969,18'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1972,13'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1972,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:1974,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1976,34'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1979,39'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1982,33'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1985,38'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1988,43'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1991,38'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1994,39'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1997,36'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2000,12'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1976,10'
          Branch Sides:
            - BranchSide:      'lib/util.c:2000,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2000,12'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1979,10'
          Branch Sides:
            - BranchSide:      'lib/util.c:2000,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2000,12'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1982,10'
          Branch Sides:
            - BranchSide:      'lib/util.c:2000,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2000,12'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1985,10'
          Branch Sides:
            - BranchSide:      'lib/util.c:2000,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2000,12'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1988,10'
          Branch Sides:
            - BranchSide:      'lib/util.c:2000,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2000,12'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1991,10'
          Branch Sides:
            - BranchSide:      'lib/util.c:2000,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2000,12'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1994,10'
          Branch Sides:
            - BranchSide:      'lib/util.c:2000,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2000,12'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1997,10'
          Branch Sides:
            - BranchSide:      'lib/util.c:2000,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2000,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:1955,21'
          Dst:             hexit_value
    - functionName:    hexit_value
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 961
      functionLinenumberEnd: 974
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - c
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    skip_spaces
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1923
      functionLinenumberEnd: 1927
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __ctype_b_loc
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/util.c:1924,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:1925,10'
              BranchSideFuncs:
                - __ctype_b_loc
            - BranchSide:      'lib/util.c:1927,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:1924,12'
          Dst:             __ctype_b_loc
    - functionName:    subprogram_name_set_unsafe
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - value
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - subprogram_name_get_unsafe
        - xpthread_setspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:65,1'
          Dst:             subprogram_name_get_unsafe
        - Src:             'lib/util.c:65,1'
          Dst:             xpthread_setspecific
    - functionName:    ovs_kernel_is_version_or_newer
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2512
      functionLinenumberEnd: 2532
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - target_major
        - target_minor
      BBCount:         34
      ICount:          144
      EdgeCount:       43
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - ovs_scan
        - ovs_strerror
        - ovsthread_once_done
        - ovsthread_once_start
        - uname
        - vlog
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:2516,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:2519,13'
              BranchSideFuncs:
                - uname
                - ovs_scan
                - ovsthread_once_done
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/util.c:2527,9'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:2519,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:2520,13'
              BranchSideFuncs:
                - ovsthread_once_done
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/util.c:2521,38'
              BranchSideFuncs:
                - ovs_scan
                - ovsthread_once_done
                - vlog
        - Branch String:   'lib/util.c:2520,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:2520,13'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
                - ovsthread_once_done
            - BranchSide:      'lib/util.c:2521,9'
              BranchSideFuncs:
                - ovsthread_once_done
        - Branch String:   'lib/util.c:2523,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:2523,13'
              BranchSideFuncs:
                - vlog
                - ovsthread_once_done
            - BranchSide:      'lib/util.c:2524,9'
              BranchSideFuncs:
                - ovsthread_once_done
        - Branch String:   'lib/util.c:2527,29'
          Branch Sides:
            - BranchSide:      'lib/util.c:2527,32'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2528,9'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:2527,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:2528,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2530,12'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:2530,41'
          Branch Sides:
            - BranchSide:      'lib/util.c:2530,5'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2531,13'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:2531,43'
          Branch Sides:
            - BranchSide:      'lib/util.c:2530,41'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2531,46'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:2516,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/util.c:2519,13'
          Dst:             uname
        - Src:             'lib/util.c:2520,13'
          Dst:             __errno_location
        - Src:             'lib/util.c:2520,13'
          Dst:             ovs_strerror
        - Src:             'lib/util.c:2520,13'
          Dst:             vlog
        - Src:             'lib/util.c:2521,21'
          Dst:             ovs_scan
        - Src:             'lib/util.c:2523,13'
          Dst:             vlog
        - Src:             'lib/util.c:2525,9'
          Dst:             ovsthread_once_done
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - once
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    3
      BranchProfiles:
        - Branch String:   './include/openvswitch/thread.h:161,12'
          Branch Sides:
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs:
                - ovsthread_once_start__
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    uname
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_scan
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2346
      functionLinenumberEnd: 2353
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - format
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_scan__
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:2351,11'
          Dst:             ovs_scan__
    - functionName:    ovs_scan__
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2166
      functionLinenumberEnd: 2322
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - n
        - format
        - args
      BBCount:         84
      ICount:          527
      EdgeCount:       101
      CyclomaticComplexity: 19
      functionsReached:
        - __ctype_b_loc
        - scan_chars
        - scan_float
        - scan_int
        - scan_set
        - scan_string
        - skip_spaces
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/util.c:2172,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:2174,29'
              BranchSideFuncs:
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
            - BranchSide:      'lib/util.c:2316,9'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:2177,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:2178,29'
              BranchSideFuncs:
                - skip_spaces
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
            - BranchSide:      'lib/util.c:2180,20'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
        - Branch String:   'lib/util.c:2180,20'
          Branch Sides:
            - BranchSide:      'lib/util.c:2181,18'
              BranchSideFuncs:
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
            - BranchSide:      'lib/util.c:2186,21'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
        - Branch String:   'lib/util.c:2181,17'
          Branch Sides:
            - BranchSide:      'lib/util.c:2182,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2184,14'
              BranchSideFuncs:
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
        - Branch String:   'lib/util.c:2187,17'
          Branch Sides:
            - BranchSide:      'lib/util.c:2188,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2190,14'
              BranchSideFuncs:
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
        - Branch String:   'lib/util.c:2200,26'
          Branch Sides:
            - BranchSide:      'lib/util.c:2200,30'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
            - BranchSide:      'lib/util.c:2200,9'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
        - Branch String:   'lib/util.c:2200,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:2201,31'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
            - BranchSide:      'lib/util.c:2203,18'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
        - Branch String:   'lib/util.c:2203,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:2204,18'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
            - BranchSide:      'lib/util.c:2208,18'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
        - Branch String:   'lib/util.c:2208,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:2210,17'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
            - BranchSide:      'lib/util.c:2220,18'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
            - BranchSide:      'lib/util.c:2225,17'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
            - BranchSide:      'lib/util.c:2236,18'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
            - BranchSide:      'lib/util.c:2236,18'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
            - BranchSide:      'lib/util.c:2241,18'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
            - BranchSide:      'lib/util.c:2246,18'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
            - BranchSide:      'lib/util.c:2251,18'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
        - Branch String:   'lib/util.c:2210,17'
          Branch Sides:
            - BranchSide:      'lib/util.c:2211,22'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
            - BranchSide:      'lib/util.c:2214,22'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
        - Branch String:   'lib/util.c:2225,17'
          Branch Sides:
            - BranchSide:      'lib/util.c:2226,22'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
            - BranchSide:      'lib/util.c:2229,22'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
        - Branch String:   'lib/util.c:2255,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:2256,18'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
            - BranchSide:      'lib/util.c:2259,15'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
        - Branch String:   'lib/util.c:2260,22'
          Branch Sides:
            - BranchSide:      'lib/util.c:2260,25'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
            - BranchSide:      'lib/util.c:2263,17'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
        - Branch String:   'lib/util.c:2260,34'
          Branch Sides:
            - BranchSide:      'lib/util.c:2260,37'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
            - BranchSide:      'lib/util.c:2263,17'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
        - Branch String:   'lib/util.c:2260,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:2261,29'
              BranchSideFuncs:
                - skip_spaces
                - __ctype_b_loc
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
            - BranchSide:      'lib/util.c:2263,17'
              BranchSideFuncs:
                - __ctype_b_loc
                - skip_spaces
                - skip_spaces
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
        - Branch String:   'lib/util.c:2263,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:2265,26'
              BranchSideFuncs:
                - scan_int
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
            - BranchSide:      'lib/util.c:2269,26'
              BranchSideFuncs:
                - scan_int
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
            - BranchSide:      'lib/util.c:2273,26'
              BranchSideFuncs:
                - scan_int
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
            - BranchSide:      'lib/util.c:2277,26'
              BranchSideFuncs:
                - scan_int
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
            - BranchSide:      'lib/util.c:2282,26'
              BranchSideFuncs:
                - scan_int
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
            - BranchSide:      'lib/util.c:2282,26'
              BranchSideFuncs:
                - scan_int
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
            - BranchSide:      'lib/util.c:2290,28'
              BranchSideFuncs:
                - scan_float
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
            - BranchSide:      'lib/util.c:2290,28'
              BranchSideFuncs:
                - scan_float
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
            - BranchSide:      'lib/util.c:2290,28'
              BranchSideFuncs:
                - scan_float
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
            - BranchSide:      'lib/util.c:2290,28'
              BranchSideFuncs:
                - scan_float
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
            - BranchSide:      'lib/util.c:2290,28'
              BranchSideFuncs:
                - scan_float
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
            - BranchSide:      'lib/util.c:2294,29'
              BranchSideFuncs:
                - scan_string
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
            - BranchSide:      'lib/util.c:2298,26'
              BranchSideFuncs:
                - scan_set
                - __ctype_b_loc
                - scan_chars
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
            - BranchSide:      'lib/util.c:2302,28'
              BranchSideFuncs:
                - scan_chars
                - __ctype_b_loc
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
            - BranchSide:      'lib/util.c:2306,22'
              BranchSideFuncs:
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
            - BranchSide:      'lib/util.c:2312,14'
              BranchSideFuncs:
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
        - Branch String:   'lib/util.c:2306,17'
          Branch Sides:
            - BranchSide:      'lib/util.c:2307,41'
              BranchSideFuncs:
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
            - BranchSide:      'lib/util.c:2309,13'
              BranchSideFuncs:
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
        - Branch String:   'lib/util.c:2307,18'
          Branch Sides:
            - BranchSide:      'lib/util.c:2309,13'
              BranchSideFuncs:
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
            - BranchSide:      'lib/util.c:2309,13'
              BranchSideFuncs:
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
        - Branch String:   'lib/util.c:2312,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:2172,5'
              BranchSideFuncs:
                - __ctype_b_loc
                - scan_chars
                - scan_set
                - scan_string
                - scan_float
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - scan_int
                - skip_spaces
                - skip_spaces
            - BranchSide:      'lib/util.c:2313,13'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:2316,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:2317,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2320,8'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:2177,13'
          Dst:             __ctype_b_loc
        - Src:             'lib/util.c:2178,17'
          Dst:             skip_spaces
        - Src:             'lib/util.c:2261,17'
          Dst:             skip_spaces
        - Src:             'lib/util.c:2265,17'
          Dst:             scan_int
        - Src:             'lib/util.c:2269,17'
          Dst:             scan_int
        - Src:             'lib/util.c:2273,17'
          Dst:             scan_int
        - Src:             'lib/util.c:2277,17'
          Dst:             scan_int
        - Src:             'lib/util.c:2282,17'
          Dst:             scan_int
        - Src:             'lib/util.c:2290,17'
          Dst:             scan_float
        - Src:             'lib/util.c:2294,17'
          Dst:             scan_string
        - Src:             'lib/util.c:2298,17'
          Dst:             scan_set
        - Src:             'lib/util.c:2302,17'
          Dst:             scan_chars
    - functionName:    is_stdout_a_tty
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2455
      functionLinenumberEnd: 2457
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          39
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - getenv
        - isatty
        - strcmp
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:2456,21'
          Branch Sides:
            - BranchSide:      'lib/util.c:2456,17'
              BranchSideFuncs:
                - getenv
                - isatty
                - strcmp
            - BranchSide:      'lib/util.c:2456,21'
              BranchSideFuncs:
                - getenv
                - isatty
                - strcmp
        - Branch String:   'lib/util.c:2457,35'
          Branch Sides:
            - BranchSide:      'lib/util.c:2457,38'
              BranchSideFuncs:
                - strcmp
            - BranchSide:      'lib/util.c:2457,35'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:2457,40'
          Branch Sides:
            - BranchSide:      'lib/util.c:2457,50'
              BranchSideFuncs:
                - strcmp
            - BranchSide:      'lib/util.c:2457,40'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:2456,21'
          Dst:             getenv
        - Src:             'lib/util.c:2457,13'
          Dst:             isatty
        - Src:             'lib/util.c:2457,43'
          Dst:             strcmp
    - functionName:    getenv
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_timer_resolution
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2439
      functionLinenumberEnd: 2441
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - nanoseconds
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - prctl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:2440,5'
          Dst:             prctl
    - functionName:    prctl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xnanosleep_no_quiesce
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2432
      functionLinenumberEnd: 2434
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - nanoseconds
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xnanosleep__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:2433,5'
          Dst:             xnanosleep__
    - functionName:    xnanosleep__
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2390
      functionLinenumberEnd: 2418
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - nanoseconds
      BBCount:         10
      ICount:          53
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - nanosleep
        - nsec_to_timespec
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/util.c:2399,17'
          Branch Sides:
            - BranchSide:      'lib/util.c:2399,30'
              BranchSideFuncs:
                - __errno_location
                - nanosleep
            - BranchSide:      'lib/util.c:2399,15'
              BranchSideFuncs:
                - nanosleep
                - __errno_location
        - Branch String:   'lib/util.c:2400,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:2398,18'
              BranchSideFuncs:
                - nanosleep
                - __errno_location
            - BranchSide:      'lib/util.c:2418,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:2394,5'
          Dst:             nsec_to_timespec
        - Src:             'lib/util.c:2398,18'
          Dst:             nanosleep
        - Src:             'lib/util.c:2399,30'
          Dst:             __errno_location
    - functionName:    nanosleep
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xnanosleep
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2423
      functionLinenumberEnd: 2427
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - nanoseconds
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsrcu_quiesce_end
        - ovsrcu_quiesce_start
        - xnanosleep__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:2424,5'
          Dst:             ovsrcu_quiesce_start
        - Src:             'lib/util.c:2425,5'
          Dst:             xnanosleep__
        - Src:             'lib/util.c:2426,5'
          Dst:             ovsrcu_quiesce_end
    - functionName:    xsleep
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2378
      functionLinenumberEnd: 2386
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - seconds
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsrcu_quiesce_end
        - ovsrcu_quiesce_start
        - sleep
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:2379,5'
          Dst:             ovsrcu_quiesce_start
        - Src:             'lib/util.c:2383,5'
          Dst:             sleep
        - Src:             'lib/util.c:2385,5'
          Dst:             ovsrcu_quiesce_end
    - functionName:    sleep
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_scan_len
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2362
      functionLinenumberEnd: 2373
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - n
        - format
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_scan__
      functionUses:    6
      BranchProfiles:
        - Branch String:   'lib/util.c:2370,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:2370,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:2371,15'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:2368,15'
          Dst:             ovs_scan__
    - functionName:    bitwise_toggle_bit
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1898
      functionLinenumberEnd: 1902
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - dst_
        - len
        - ofs
      BBCount:         1
      ICount:          33
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bitwise_put_bit
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1877
      functionLinenumberEnd: 1883
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - bool
      constantsTouched: []
      argNames:
        - dst
        - len
        - ofs
        - b
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - bitwise_put0
        - bitwise_put1
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:1878,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1879,22'
              BranchSideFuncs:
                - bitwise_put1
            - BranchSide:      'lib/util.c:1881,22'
              BranchSideFuncs:
                - bitwise_put0
      Callsites:
        - Src:             'lib/util.c:1879,9'
          Dst:             bitwise_put1
        - Src:             'lib/util.c:1881,9'
          Dst:             bitwise_put0
    - functionName:    bitwise_put1
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1858
      functionLinenumberEnd: 1862
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - dst_
        - len
        - ofs
      BBCount:         1
      ICount:          33
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bitwise_put0
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1839
      functionLinenumberEnd: 1843
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - dst_
        - len
        - ofs
      BBCount:         1
      ICount:          34
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ntohll
      functionSourceFile: '/src/openvswitch/lib/byte-order.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - n
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - htonl
        - ntohl
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/byte-order.h:36,12'
          Branch Sides:
            - BranchSide:      'lib/byte-order.h:36,28'
              BranchSideFuncs: []
            - BranchSide:      'lib/byte-order.h:36,50'
              BranchSideFuncs:
                - ntohl
                - ntohl
      Callsites:
        - Src:             'lib/byte-order.h:36,12'
          Dst:             htonl
        - Src:             'lib/byte-order.h:36,44'
          Dst:             ntohl
        - Src:             'lib/byte-order.h:36,62'
          Dst:             ntohl
    - functionName:    bitwise_get
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1797
      functionLinenumberEnd: 1803
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - src
        - src_len
        - src_ofs
        - n_bits
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - bitwise_copy
        - htonll
        - ntohll
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:1798,22'
          Dst:             htonll
        - Src:             'lib/util.c:1800,5'
          Dst:             bitwise_copy
        - Src:             'lib/util.c:1803,12'
          Dst:             ntohll
    - functionName:    htonll
      functionSourceFile: '/src/openvswitch/lib/byte-order.h'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - n
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - htonl
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/byte-order.h:30,12'
          Branch Sides:
            - BranchSide:      'lib/byte-order.h:30,28'
              BranchSideFuncs: []
            - BranchSide:      'lib/byte-order.h:30,50'
              BranchSideFuncs:
                - htonl
                - htonl
      Callsites:
        - Src:             'lib/byte-order.h:30,12'
          Dst:             htonl
        - Src:             'lib/byte-order.h:30,44'
          Dst:             htonl
        - Src:             'lib/byte-order.h:30,62'
          Dst:             htonl
    - functionName:    bitwise_copy
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1469
      functionLinenumberEnd: 1516
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - src_
        - src_len
        - src_ofs
        - dst_
        - dst_len
        - dst_ofs
        - n_bits
      BBCount:         28
      ICount:          282
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/util.c:1479,22'
          Branch Sides:
            - BranchSide:      'lib/util.c:1479,25'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1495,9'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1479,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1480,32'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1495,9'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1481,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1482,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1490,13'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1490,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1491,34'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1494,5'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1495,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:0,0'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1496,41'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1496,41'
          Branch Sides:
            - BranchSide:      'lib/util.c:1496,39'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1496,39'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1497,34'
          Branch Sides:
            - BranchSide:      'lib/util.c:1497,26'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1497,26'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1504,17'
          Branch Sides:
            - BranchSide:      'lib/util.c:1505,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1508,24'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1509,17'
          Branch Sides:
            - BranchSide:      'lib/util.c:1510,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1513,23'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    bitwise_put
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1774
      functionLinenumberEnd: 1779
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - size_t
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - value
        - dst
        - dst_len
        - dst_ofs
        - n_bits
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - bitwise_copy
        - htonll
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:1775,24'
          Dst:             htonll
        - Src:             'lib/util.c:1776,5'
          Dst:             bitwise_copy
    - functionName:    bitwise_rscan
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1715
      functionLinenumberEnd: 1755
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - bool
        - int
        - int
      constantsTouched: []
      argNames:
        - p
        - len
        - target
        - start
        - end
      BBCount:         39
      ICount:          253
      EdgeCount:       50
      CyclomaticComplexity: 13
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:1726,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:1727,15'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1731,9'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1727,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1728,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1730,5'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1731,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1733,25'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1750,16'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1733,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1734,18'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1739,13'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1734,25'
          Branch Sides:
            - BranchSide:      'lib/util.c:1734,28'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1735,26'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1735,21'
          Branch Sides:
            - BranchSide:      'lib/util.c:1735,26'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1736,16'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1735,33'
          Branch Sides:
            - BranchSide:      'lib/util.c:1735,37'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1738,9'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1734,17'
          Branch Sides:
            - BranchSide:      'lib/util.c:1736,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1738,9'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1739,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1740,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1742,20'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1744,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1745,19'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1749,5'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1745,17'
          Branch Sides:
            - BranchSide:      'lib/util.c:1746,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1748,9'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1751,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1752,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1754,12'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    bitwise_get_bit
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1820
      functionLinenumberEnd: 1823
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - src_
        - len
        - ofs
      BBCount:         1
      ICount:          33
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bitwise_scan
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1685
      functionLinenumberEnd: 1693
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - bool
        - int
        - int
      constantsTouched: []
      argNames:
        - p
        - len
        - target
        - start
        - end
      BBCount:         10
      ICount:          65
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - bitwise_get_bit
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:1688,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:1688,5'
              BranchSideFuncs:
                - bitwise_get_bit
            - BranchSide:      'lib/util.c:1689,29'
              BranchSideFuncs:
                - bitwise_get_bit
        - Branch String:   'lib/util.c:1689,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1690,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1692,5'
              BranchSideFuncs:
                - bitwise_get_bit
      Callsites:
        - Src:             'lib/util.c:1689,13'
          Dst:             bitwise_get_bit
    - functionName:    bitwise_is_all_zeros
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1630
      functionLinenumberEnd: 1668
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - p_
        - len
        - ofs
        - n_bits
      BBCount:         24
      ICount:          162
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:1633,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1634,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1637,10'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1640,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1641,30'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1655,5'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1641,30'
          Branch Sides:
            - BranchSide:      'lib/util.c:1641,22'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1641,22'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1643,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1644,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1647,19'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1648,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1649,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1652,10'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1655,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:1656,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1663,9'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1656,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1657,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1659,16'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1663,16'
          Branch Sides:
            - BranchSide:      'lib/util.c:1663,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1667,5'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1663,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1664,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1667,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    bitwise_one
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1581
      functionLinenumberEnd: 1612
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - dst_
        - dst_len
        - dst_ofs
        - n_bits
      BBCount:         17
      ICount:          135
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:1584,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1585,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1588,12'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1591,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1592,30'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1604,5'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1592,30'
          Branch Sides:
            - BranchSide:      'lib/util.c:1592,22'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1592,22'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1597,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1598,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1601,12'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1604,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:1605,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1609,9'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1609,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1609,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1610,23'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    bitwise_zero
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1533
      functionLinenumberEnd: 1564
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - dst_
        - dst_len
        - dst_ofs
        - n_bits
      BBCount:         17
      ICount:          137
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:1536,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1537,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1540,12'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1543,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1544,30'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1556,5'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1544,30'
          Branch Sides:
            - BranchSide:      'lib/util.c:1544,22'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1544,22'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1549,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1550,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1553,12'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1556,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:1557,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1561,9'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1561,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1561,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1562,25'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    or_bytes
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1440
      functionLinenumberEnd: 1448
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - dst_
        - src_
        - n
      BBCount:         5
      ICount:          54
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:1445,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:1446,23'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1448,1'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    is_all_ones
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1433
      functionLinenumberEnd: 1434
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - p
        - n
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - is_all_byte
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:1434,12'
          Dst:             is_all_byte
    - functionName:    is_all_byte
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1411
      functionLinenumberEnd: 1421
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - char
      constantsTouched: []
      argNames:
        - p_
        - n
        - byte
      BBCount:         8
      ICount:          56
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/util.c:1415,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:1416,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1420,5'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1416,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1417,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1419,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    is_all_zeros
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1426
      functionLinenumberEnd: 1427
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - p
        - n
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - is_all_byte
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:1427,12'
          Dst:             is_all_byte
    - functionName:    english_list_delimiter
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1326
      functionLinenumberEnd: 1329
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - index
        - total
      BBCount:         7
      ICount:          40
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:1327,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1327,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1328,15'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1328,15'
          Branch Sides:
            - BranchSide:      'lib/util.c:1327,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1329,15'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    xreadlink
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1225
      functionLinenumberEnd: 1249
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - filename
      BBCount:         13
      ICount:          86
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - readlink
        - xmalloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.c:1237,25'
          Branch Sides:
            - BranchSide:      'lib/util.c:1237,28'
              BranchSideFuncs:
                - free
                - xmalloc
                - readlink
                - __errno_location
                - __errno_location
            - BranchSide:      'lib/util.c:1242,14'
              BranchSideFuncs:
                - free
                - xmalloc
                - readlink
                - __errno_location
                - __errno_location
        - Branch String:   'lib/util.c:1237,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1238,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1242,14'
              BranchSideFuncs:
                - free
                - xmalloc
                - readlink
                - __errno_location
                - __errno_location
        - Branch String:   'lib/util.c:1243,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1244,21'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/util.c:1247,5'
              BranchSideFuncs:
                - xmalloc
                - readlink
                - __errno_location
                - free
                - __errno_location
      Callsites:
        - Src:             'lib/util.c:1233,21'
          Dst:             xmalloc
        - Src:             'lib/util.c:1234,26'
          Dst:             readlink
        - Src:             'lib/util.c:1235,21'
          Dst:             __errno_location
        - Src:             'lib/util.c:1244,13'
          Dst:             __errno_location
    - functionName:    follow_symlinks
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1266
      functionLinenumberEnd: 1314
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - filename
      BBCount:         31
      ICount:          192
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - dir_name
        - lstat
        - ovs_strerror
        - strcmp
        - strlen
        - vlog
        - xasprintf
        - xreadlink
        - xstrdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.c:1273,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:1277,19'
              BranchSideFuncs:
                - lstat
                - xreadlink
                - __errno_location
                - ovs_strerror
                - vlog
                - dir_name
                - strcmp
                - free
                - free
                - free
                - xstrdup
                - vlog
                - strlen
                - xasprintf
                - free
            - BranchSide:      'lib/util.c:1310,5'
              BranchSideFuncs:
                - free
                - xstrdup
                - vlog
        - Branch String:   'lib/util.c:1277,32'
          Branch Sides:
            - BranchSide:      'lib/util.c:1277,36'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1278,20'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1277,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1278,20'
              BranchSideFuncs:
                - xreadlink
                - __errno_location
                - ovs_strerror
                - vlog
                - dir_name
                - strcmp
                - free
                - free
                - free
                - xstrdup
                - vlog
                - lstat
                - strlen
                - xasprintf
                - free
            - BranchSide:      'lib/util.c:1281,30'
              BranchSideFuncs:
                - xreadlink
                - __errno_location
                - ovs_strerror
                - vlog
                - dir_name
                - strcmp
                - free
                - free
                - free
                - xstrdup
                - vlog
                - lstat
                - strlen
                - xasprintf
                - free
        - Branch String:   'lib/util.c:1282,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1283,13'
              BranchSideFuncs:
                - dir_name
                - strcmp
                - free
                - free
                - free
                - xstrdup
                - vlog
                - lstat
                - xreadlink
                - __errno_location
                - ovs_strerror
                - vlog
                - strlen
                - xasprintf
                - free
            - BranchSide:      'lib/util.c:1288,13'
              BranchSideFuncs:
                - dir_name
                - strcmp
                - free
                - free
                - free
                - xstrdup
                - vlog
                - lstat
                - xreadlink
                - __errno_location
                - ovs_strerror
                - vlog
                - strlen
                - xasprintf
                - free
        - Branch String:   'lib/util.c:1283,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1283,13'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/util.c:1285,20'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1288,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1290,23'
              BranchSideFuncs:
                - free
                - free
                - xstrdup
                - vlog
                - lstat
                - xreadlink
                - __errno_location
                - ovs_strerror
                - vlog
                - dir_name
                - strcmp
                - free
                - strlen
                - xasprintf
                - free
            - BranchSide:      'lib/util.c:1293,34'
              BranchSideFuncs:
                - dir_name
                - strcmp
                - free
                - free
                - free
                - xstrdup
                - vlog
                - lstat
                - xreadlink
                - __errno_location
                - ovs_strerror
                - vlog
                - strlen
                - xasprintf
                - free
        - Branch String:   'lib/util.c:1295,17'
          Branch Sides:
            - BranchSide:      'lib/util.c:1296,27'
              BranchSideFuncs:
                - strlen
                - xasprintf
                - free
                - free
                - free
                - free
                - xstrdup
                - vlog
                - lstat
                - xreadlink
                - __errno_location
                - ovs_strerror
                - vlog
                - dir_name
                - strcmp
            - BranchSide:      'lib/util.c:1298,35'
              BranchSideFuncs:
                - strlen
                - xasprintf
                - free
                - free
                - free
                - free
                - xstrdup
                - vlog
                - lstat
                - xreadlink
                - __errno_location
                - ovs_strerror
                - vlog
                - dir_name
                - strcmp
        - Branch String:   'lib/util.c:1310,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:1310,5'
              BranchSideFuncs:
                - vlog
                - free
                - xstrdup
            - BranchSide:      'lib/util.c:1311,10'
              BranchSideFuncs:
                - free
                - xstrdup
      Callsites:
        - Src:             'lib/util.c:1272,10'
          Dst:             xstrdup
        - Src:             'lib/util.c:1277,13'
          Dst:             lstat
        - Src:             'lib/util.c:1281,20'
          Dst:             xreadlink
        - Src:             'lib/util.c:1283,13'
          Dst:             __errno_location
        - Src:             'lib/util.c:1283,13'
          Dst:             ovs_strerror
        - Src:             'lib/util.c:1283,13'
          Dst:             vlog
        - Src:             'lib/util.c:1293,25'
          Dst:             dir_name
        - Src:             'lib/util.c:1295,18'
          Dst:             strcmp
        - Src:             'lib/util.c:1298,39'
          Dst:             strlen
        - Src:             'lib/util.c:1299,27'
          Dst:             xasprintf
        - Src:             'lib/util.c:1310,5'
          Dst:             vlog
        - Src:             'lib/util.c:1313,12'
          Dst:             xstrdup
    - functionName:    xstrdup
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strlen
        - xmemdup0
      functionUses:    63
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:206,24'
          Dst:             strlen
        - Src:             'lib/util.c:206,12'
          Dst:             xmemdup0
    - functionName:    lstat
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dir_name
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1129
      functionLinenumberEnd: 1140
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - file_name
      BBCount:         24
      ICount:          127
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - all_slashes_name
        - strlen
        - xmemdup0
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/util.c:1131,20'
          Branch Sides:
            - BranchSide:      'lib/util.c:1131,23'
              BranchSideFuncs:
                - all_slashes_name
                - xmemdup0
            - BranchSide:      'lib/util.c:1131,5'
              BranchSideFuncs:
                - all_slashes_name
                - xmemdup0
        - Branch String:   'lib/util.c:1131,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:1132,12'
              BranchSideFuncs:
                - all_slashes_name
                - xmemdup0
            - BranchSide:      'lib/util.c:1134,5'
              BranchSideFuncs:
                - all_slashes_name
                - xmemdup0
        - Branch String:   'lib/util.c:1134,20'
          Branch Sides:
            - BranchSide:      'lib/util.c:1134,23'
              BranchSideFuncs:
                - all_slashes_name
                - xmemdup0
            - BranchSide:      'lib/util.c:1134,5'
              BranchSideFuncs:
                - all_slashes_name
                - xmemdup0
        - Branch String:   'lib/util.c:1134,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:1135,12'
              BranchSideFuncs:
                - all_slashes_name
                - xmemdup0
            - BranchSide:      'lib/util.c:1137,5'
              BranchSideFuncs:
                - all_slashes_name
                - xmemdup0
        - Branch String:   'lib/util.c:1137,20'
          Branch Sides:
            - BranchSide:      'lib/util.c:1137,23'
              BranchSideFuncs:
                - all_slashes_name
                - xmemdup0
            - BranchSide:      'lib/util.c:1137,5'
              BranchSideFuncs:
                - all_slashes_name
                - xmemdup0
        - Branch String:   'lib/util.c:1137,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:1138,12'
              BranchSideFuncs:
                - all_slashes_name
                - xmemdup0
            - BranchSide:      'lib/util.c:1140,12'
              BranchSideFuncs:
                - all_slashes_name
                - xmemdup0
        - Branch String:   'lib/util.c:1140,12'
          Branch Sides:
            - BranchSide:      'lib/util.c:1140,27'
              BranchSideFuncs:
                - xmemdup0
            - BranchSide:      'lib/util.c:1140,62'
              BranchSideFuncs:
                - all_slashes_name
      Callsites:
        - Src:             'lib/util.c:1130,18'
          Dst:             strlen
        - Src:             'lib/util.c:1140,18'
          Dst:             xmemdup0
        - Src:             'lib/util.c:1140,45'
          Dst:             all_slashes_name
    - functionName:    xasprintf
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - format
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xvasprintf
      functionUses:    61
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:374,9'
          Dst:             xvasprintf
    - functionName:    xvasprintf
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - format
        - args
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vsnprintf
        - xmalloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:231,14'
          Dst:             vsnprintf
        - Src:             'lib/util.c:233,9'
          Dst:             xmalloc
        - Src:             'lib/util.c:235,5'
          Dst:             vsnprintf
    - functionName:    vsnprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    all_slashes_name
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1118
      functionLinenumberEnd: 1120
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         11
      ICount:          62
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - xstrdup
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/util.c:1119,32'
          Branch Sides:
            - BranchSide:      'lib/util.c:1119,35'
              BranchSideFuncs:
                - xstrdup
            - BranchSide:      'lib/util.c:1120,22'
              BranchSideFuncs:
                - xstrdup
        - Branch String:   'lib/util.c:1119,47'
          Branch Sides:
            - BranchSide:      'lib/util.c:1119,50'
              BranchSideFuncs:
                - xstrdup
            - BranchSide:      'lib/util.c:1120,22'
              BranchSideFuncs:
                - xstrdup
        - Branch String:   'lib/util.c:1119,20'
          Branch Sides:
            - BranchSide:      'lib/util.c:1119,20'
              BranchSideFuncs:
                - xstrdup
            - BranchSide:      'lib/util.c:1120,22'
              BranchSideFuncs:
                - xstrdup
      Callsites:
        - Src:             'lib/util.c:1119,12'
          Dst:             xstrdup
    - functionName:    abs_file_name
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1188
      functionLinenumberEnd: 1218
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - dir
        - file_name
      BBCount:         13
      ICount:          96
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - get_cwd
        - is_file_name_absolute
        - strlen
        - xasprintf
        - xstrdup
      functionUses:    7
      BranchProfiles:
        - Branch String:   'lib/util.c:1190,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1191,24'
              BranchSideFuncs:
                - xstrdup
            - BranchSide:      'lib/util.c:1196,9'
              BranchSideFuncs:
                - get_cwd
                - xasprintf
                - free
                - strlen
                - xasprintf
        - Branch String:   'lib/util.c:1196,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1196,16'
              BranchSideFuncs:
                - get_cwd
                - xasprintf
                - free
                - strlen
                - xasprintf
            - BranchSide:      'lib/util.c:1210,17'
              BranchSideFuncs:
                - get_cwd
                - xasprintf
                - free
        - Branch String:   'lib/util.c:1196,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1197,27'
              BranchSideFuncs:
                - strlen
                - xasprintf
            - BranchSide:      'lib/util.c:1210,17'
              BranchSideFuncs:
                - get_cwd
                - xasprintf
                - free
        - Branch String:   'lib/util.c:1211,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1212,9'
              BranchSideFuncs:
                - xasprintf
                - free
            - BranchSide:      'lib/util.c:1214,41'
              BranchSideFuncs:
                - xasprintf
                - free
      Callsites:
        - Src:             'lib/util.c:1190,9'
          Dst:             is_file_name_absolute
        - Src:             'lib/util.c:1191,16'
          Dst:             xstrdup
        - Src:             'lib/util.c:1197,31'
          Dst:             strlen
        - Src:             'lib/util.c:1198,16'
          Dst:             xasprintf
        - Src:             'lib/util.c:1210,17'
          Dst:             get_cwd
        - Src:             'lib/util.c:1214,22'
          Dst:             xasprintf
    - functionName:    is_file_name_absolute
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1170
      functionLinenumberEnd: 1176
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - fn
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_cwd
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1085
      functionLinenumberEnd: 1114
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         21
      ICount:          111
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - getcwd
        - ovs_strerror
        - pathconf
        - strlen
        - vlog
        - xmalloc
        - xrealloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.c:1091,16'
          Branch Sides:
            - BranchSide:      'lib/util.c:1086,14'
              BranchSideFuncs:
                - pathconf
                - xmalloc
                - getcwd
                - __errno_location
                - free
                - ovs_strerror
                - vlog
                - strlen
                - xrealloc
            - BranchSide:      'lib/util.c:1091,16'
              BranchSideFuncs:
                - pathconf
                - xmalloc
                - getcwd
                - __errno_location
                - free
                - ovs_strerror
                - vlog
                - strlen
                - xrealloc
        - Branch String:   'lib/util.c:1095,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1095,10'
              BranchSideFuncs:
                - xmalloc
                - getcwd
                - __errno_location
                - free
                - ovs_strerror
                - vlog
                - strlen
                - xrealloc
            - BranchSide:      'lib/util.c:1096,15'
              BranchSideFuncs:
                - xmalloc
                - getcwd
                - __errno_location
                - free
                - ovs_strerror
                - vlog
                - strlen
                - xrealloc
        - Branch String:   'lib/util.c:1096,15'
          Branch Sides:
            - BranchSide:      'lib/util.c:1095,13'
              BranchSideFuncs:
                - xmalloc
                - getcwd
                - __errno_location
                - free
                - ovs_strerror
                - vlog
                - strlen
                - xrealloc
            - BranchSide:      'lib/util.c:1097,15'
              BranchSideFuncs:
                - xmalloc
                - getcwd
                - __errno_location
                - free
                - ovs_strerror
                - vlog
                - strlen
                - xrealloc
        - Branch String:   'lib/util.c:1102,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:1103,29'
              BranchSideFuncs:
                - strlen
                - xrealloc
            - BranchSide:      'lib/util.c:1105,25'
              BranchSideFuncs:
                - __errno_location
                - free
                - xmalloc
                - getcwd
                - strlen
                - xrealloc
                - ovs_strerror
                - vlog
        - Branch String:   'lib/util.c:1107,17'
          Branch Sides:
            - BranchSide:      'lib/util.c:1108,17'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/util.c:1111,18'
              BranchSideFuncs:
                - xmalloc
                - getcwd
                - __errno_location
                - free
                - ovs_strerror
                - vlog
                - strlen
                - xrealloc
        - Branch String:   'lib/util.c:1108,17'
          Branch Sides:
            - BranchSide:      'lib/util.c:1108,17'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/util.c:1109,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:1091,16'
          Dst:             pathconf
        - Src:             'lib/util.c:1101,21'
          Dst:             xmalloc
        - Src:             'lib/util.c:1102,13'
          Dst:             getcwd
        - Src:             'lib/util.c:1103,34'
          Dst:             strlen
        - Src:             'lib/util.c:1103,20'
          Dst:             xrealloc
        - Src:             'lib/util.c:1105,25'
          Dst:             __errno_location
        - Src:             'lib/util.c:1108,17'
          Dst:             ovs_strerror
        - Src:             'lib/util.c:1108,17'
          Dst:             vlog
    - functionName:    pathconf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getcwd
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xrealloc
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - p
        - size
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - util_xalloc_add
        - xrealloc__
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:182,5'
          Dst:             util_xalloc_add
        - Src:             'lib/util.c:183,12'
          Dst:             xrealloc__
    - functionName:    xrealloc__
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - p
        - size
      BBCount:         8
      ICount:          46
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - out_of_memory
        - realloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.c:151,20'
          Branch Sides:
            - BranchSide:      'lib/util.c:151,27'
              BranchSideFuncs:
                - realloc
                - out_of_memory
            - BranchSide:      'lib/util.c:151,9'
              BranchSideFuncs:
                - realloc
                - out_of_memory
        - Branch String:   'lib/util.c:152,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:153,9'
              BranchSideFuncs:
                - out_of_memory
            - BranchSide:      'lib/util.c:155,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:151,9'
          Dst:             realloc
        - Src:             'lib/util.c:153,9'
          Dst:             out_of_memory
    - functionName:    realloc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    base_name
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1147
      functionLinenumberEnd: 1165
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - file_name
      BBCount:         18
      ICount:          108
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - all_slashes_name
        - strlen
        - xmemdup0
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/util.c:1151,20'
          Branch Sides:
            - BranchSide:      'lib/util.c:1151,23'
              BranchSideFuncs:
                - all_slashes_name
                - xmemdup0
            - BranchSide:      'lib/util.c:1151,5'
              BranchSideFuncs:
                - all_slashes_name
                - xmemdup0
        - Branch String:   'lib/util.c:1151,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:1152,12'
              BranchSideFuncs:
                - all_slashes_name
                - xmemdup0
            - BranchSide:      'lib/util.c:1155,10'
              BranchSideFuncs:
                - all_slashes_name
                - xmemdup0
        - Branch String:   'lib/util.c:1155,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1156,33'
              BranchSideFuncs:
                - xmemdup0
            - BranchSide:      'lib/util.c:1159,13'
              BranchSideFuncs:
                - xmemdup0
        - Branch String:   'lib/util.c:1160,22'
          Branch Sides:
            - BranchSide:      'lib/util.c:1160,25'
              BranchSideFuncs:
                - xmemdup0
            - BranchSide:      'lib/util.c:1160,5'
              BranchSideFuncs:
                - xmemdup0
        - Branch String:   'lib/util.c:1160,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:1161,14'
              BranchSideFuncs:
                - xmemdup0
            - BranchSide:      'lib/util.c:1164,21'
              BranchSideFuncs:
                - xmemdup0
      Callsites:
        - Src:             'lib/util.c:1150,11'
          Dst:             strlen
        - Src:             'lib/util.c:1156,16'
          Dst:             all_slashes_name
        - Src:             'lib/util.c:1164,12'
          Dst:             xmemdup0
    - functionName:    parse_int_string
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1012
      functionLinenumberEnd: 1079
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - valuep
        - field_width
        - tail
      BBCount:         43
      ICount:          293
      EdgeCount:       56
      CyclomaticComplexity: 15
      functionsReached:
        - __errno_location
        - hexits_value
        - strncmp
        - strspn
        - strtoull
        - xmalloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:1016,30'
          Branch Sides:
            - BranchSide:      'lib/util.c:1016,42'
              BranchSideFuncs:
                - strncmp
                - xmalloc
                - strspn
                - hexits_value
                - free
                - __errno_location
                - strtoull
                - __errno_location
                - __errno_location
                - __errno_location
            - BranchSide:      'lib/util.c:1018,13'
              BranchSideFuncs:
                - xmalloc
                - strspn
                - hexits_value
                - free
        - Branch String:   'lib/util.c:1016,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1018,13'
              BranchSideFuncs:
                - __errno_location
                - strtoull
                - __errno_location
                - __errno_location
                - __errno_location
            - BranchSide:      'lib/util.c:1064,5'
              BranchSideFuncs:
                - __errno_location
                - strtoull
                - __errno_location
                - __errno_location
                - __errno_location
        - Branch String:   'lib/util.c:1031,17'
          Branch Sides:
            - BranchSide:      'lib/util.c:1032,25'
              BranchSideFuncs:
                - strspn
                - hexits_value
                - free
            - BranchSide:      'lib/util.c:1036,17'
              BranchSideFuncs:
                - strspn
                - hexits_value
                - free
        - Branch String:   'lib/util.c:1036,28'
          Branch Sides:
            - BranchSide:      'lib/util.c:1036,31'
              BranchSideFuncs:
                - strspn
                - hexits_value
                - free
            - BranchSide:      'lib/util.c:1037,21'
              BranchSideFuncs:
                - strspn
                - hexits_value
                - free
        - Branch String:   'lib/util.c:1036,17'
          Branch Sides:
            - BranchSide:      'lib/util.c:1037,21'
              BranchSideFuncs:
                - strspn
                - hexits_value
                - free
            - BranchSide:      'lib/util.c:1045,14'
              BranchSideFuncs:
                - strspn
                - hexits_value
                - free
        - Branch String:   'lib/util.c:1037,21'
          Branch Sides:
            - BranchSide:      'lib/util.c:1038,25'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/util.c:1042,34'
              BranchSideFuncs:
                - strspn
                - hexits_value
                - free
        - Branch String:   'lib/util.c:1049,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1050,20'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/util.c:1057,16'
              BranchSideFuncs:
                - free
        - Branch String:   'lib/util.c:1052,17'
          Branch Sides:
            - BranchSide:      'lib/util.c:1053,36'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/util.c:1055,9'
              BranchSideFuncs:
                - free
        - Branch String:   'lib/util.c:1066,15'
          Branch Sides:
            - BranchSide:      'lib/util.c:1066,18'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
            - BranchSide:      'lib/util.c:1067,16'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
        - Branch String:   'lib/util.c:1066,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1067,16'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
            - BranchSide:      'lib/util.c:1070,14'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1067,16'
          Branch Sides:
            - BranchSide:      'lib/util.c:1067,24'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/util.c:1067,9'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1070,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:1071,21'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1074,9'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:1074,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:1075,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:1078,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:1016,10'
          Dst:             strncmp
        - Src:             'lib/util.c:1016,34'
          Dst:             strncmp
        - Src:             'lib/util.c:1023,21'
          Dst:             xmalloc
        - Src:             'lib/util.c:1029,18'
          Dst:             strspn
        - Src:             'lib/util.c:1030,21'
          Dst:             hexits_value
        - Src:             'lib/util.c:1064,5'
          Dst:             __errno_location
        - Src:             'lib/util.c:1065,15'
          Dst:             strtoull
        - Src:             'lib/util.c:1066,9'
          Dst:             __errno_location
        - Src:             'lib/util.c:1067,16'
          Dst:             __errno_location
        - Src:             'lib/util.c:1067,24'
          Dst:             __errno_location
    - functionName:    hexits_value
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 983
      functionLinenumberEnd: 998
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - n
        - ok
      BBCount:         10
      ICount:          75
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - hexit_value
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/util.c:988,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:989,33'
              BranchSideFuncs:
                - hexit_value
            - BranchSide:      'lib/util.c:996,6'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:990,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:991,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:994,18'
              BranchSideFuncs:
                - hexit_value
      Callsites:
        - Src:             'lib/util.c:989,21'
          Dst:             hexit_value
    - functionName:    strtoull
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_to_double
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 942
      functionLinenumberEnd: 956
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - d
      BBCount:         16
      ICount:          95
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - strtod
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.c:947,25'
          Branch Sides:
            - BranchSide:      'lib/util.c:947,29'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/util.c:949,17'
              BranchSideFuncs:
                - __errno_location
        - Branch String:   'lib/util.c:947,45'
          Branch Sides:
            - BranchSide:      'lib/util.c:947,49'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
            - BranchSide:      'lib/util.c:948,12'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
        - Branch String:   'lib/util.c:948,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:948,12'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/util.c:949,17'
              BranchSideFuncs:
                - __errno_location
        - Branch String:   'lib/util.c:948,22'
          Branch Sides:
            - BranchSide:      'lib/util.c:948,26'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/util.c:949,17'
              BranchSideFuncs:
                - __errno_location
        - Branch String:   'lib/util.c:947,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:949,17'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/util.c:953,17'
              BranchSideFuncs:
                - __errno_location
      Callsites:
        - Src:             'lib/util.c:943,22'
          Dst:             __errno_location
        - Src:             'lib/util.c:945,5'
          Dst:             __errno_location
        - Src:             'lib/util.c:946,10'
          Dst:             strtod
        - Src:             'lib/util.c:947,9'
          Dst:             __errno_location
        - Src:             'lib/util.c:947,29'
          Dst:             __errno_location
        - Src:             'lib/util.c:949,9'
          Dst:             __errno_location
        - Src:             'lib/util.c:953,9'
          Dst:             __errno_location
    - functionName:    strtod
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_to_llong_range
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 922
      functionLinenumberEnd: 932
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - base
        - begin
        - end
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_to_llong
        - str_to_llong_with_tail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:925,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:925,13'
              BranchSideFuncs:
                - str_to_llong
            - BranchSide:      'lib/util.c:929,6'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:926,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:926,25'
              BranchSideFuncs:
                - str_to_llong
            - BranchSide:      'lib/util.c:929,6'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:924,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:927,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:929,6'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:924,9'
          Dst:             str_to_llong_with_tail
        - Src:             'lib/util.c:926,12'
          Dst:             str_to_llong
    - functionName:    str_to_llong_with_tail
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 873
      functionLinenumberEnd: 885
      functionDepth:   0
      returnType:      bool
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - tail
        - base
        - x
      BBCount:         11
      ICount:          80
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - strtoll
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/util.c:877,25'
          Branch Sides:
            - BranchSide:      'lib/util.c:877,28'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/util.c:878,17'
              BranchSideFuncs:
                - __errno_location
        - Branch String:   'lib/util.c:877,44'
          Branch Sides:
            - BranchSide:      'lib/util.c:877,48'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/util.c:878,17'
              BranchSideFuncs:
                - __errno_location
        - Branch String:   'lib/util.c:877,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:878,17'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/util.c:882,17'
              BranchSideFuncs:
                - __errno_location
      Callsites:
        - Src:             'lib/util.c:874,22'
          Dst:             __errno_location
        - Src:             'lib/util.c:875,5'
          Dst:             __errno_location
        - Src:             'lib/util.c:876,10'
          Dst:             strtoll
        - Src:             'lib/util.c:877,9'
          Dst:             __errno_location
        - Src:             'lib/util.c:877,28'
          Dst:             __errno_location
        - Src:             'lib/util.c:878,9'
          Dst:             __errno_location
        - Src:             'lib/util.c:882,9'
          Dst:             __errno_location
    - functionName:    str_to_llong
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 861
      functionLinenumberEnd: 869
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - base
        - x
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - str_to_llong_with_tail
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/util.c:864,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:865,10'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:868,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:863,15'
          Dst:             str_to_llong_with_tail
    - functionName:    strtoll
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_to_ullong
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 903
      functionLinenumberEnd: 917
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - base
        - x
      BBCount:         13
      ICount:          87
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - strtoull
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:909,25'
          Branch Sides:
            - BranchSide:      'lib/util.c:909,28'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/util.c:910,17'
              BranchSideFuncs:
                - __errno_location
        - Branch String:   'lib/util.c:909,44'
          Branch Sides:
            - BranchSide:      'lib/util.c:909,47'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/util.c:910,17'
              BranchSideFuncs:
                - __errno_location
        - Branch String:   'lib/util.c:909,57'
          Branch Sides:
            - BranchSide:      'lib/util.c:909,61'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/util.c:910,17'
              BranchSideFuncs:
                - __errno_location
        - Branch String:   'lib/util.c:909,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:910,17'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/util.c:914,17'
              BranchSideFuncs:
                - __errno_location
      Callsites:
        - Src:             'lib/util.c:904,22'
          Dst:             __errno_location
        - Src:             'lib/util.c:907,5'
          Dst:             __errno_location
        - Src:             'lib/util.c:908,10'
          Dst:             strtoull
        - Src:             'lib/util.c:909,9'
          Dst:             __errno_location
        - Src:             'lib/util.c:909,28'
          Dst:             __errno_location
        - Src:             'lib/util.c:910,9'
          Dst:             __errno_location
        - Src:             'lib/util.c:914,9'
          Dst:             __errno_location
    - functionName:    str_to_long
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 847
      functionLinenumberEnd: 857
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - base
        - li
      BBCount:         11
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_to_llong
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:851,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:851,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:852,10'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:851,30'
          Branch Sides:
            - BranchSide:      'lib/util.c:851,33'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:852,10'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:851,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:852,10'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:855,11'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:849,15'
          Dst:             str_to_llong
    - functionName:    str_to_int
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 833
      functionLinenumberEnd: 843
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - base
        - i
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_to_llong
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.c:837,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:837,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:838,10'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:837,29'
          Branch Sides:
            - BranchSide:      'lib/util.c:837,32'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:838,10'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:837,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:838,10'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:841,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:835,15'
          Dst:             str_to_llong
    - functionName:    ovs_hex_dump
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 780
      functionLinenumberEnd: 829
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - stream
        - buf_
        - size
        - ofs
        - ascii
      BBCount:         42
      ICount:          255
      EdgeCount:       53
      CyclomaticComplexity: 13
      functionsReached:
        - fprintf
        - putc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:784,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:788,24'
              BranchSideFuncs:
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - putc
                - fprintf
                - fprintf
                - fprintf
                - fprintf
            - BranchSide:      'lib/util.c:829,1'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:790,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:791,19'
              BranchSideFuncs:
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - putc
                - fprintf
                - fprintf
                - fprintf
                - fprintf
            - BranchSide:      'lib/util.c:793,20'
              BranchSideFuncs:
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - putc
                - fprintf
                - fprintf
                - fprintf
                - fprintf
        - Branch String:   'lib/util.c:798,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:799,21'
              BranchSideFuncs:
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - putc
                - fprintf
                - fprintf
                - fprintf
            - BranchSide:      'lib/util.c:801,9'
              BranchSideFuncs:
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - putc
                - fprintf
                - fprintf
                - fprintf
        - Branch String:   'lib/util.c:801,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:802,21'
              BranchSideFuncs:
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - putc
                - fprintf
                - fprintf
            - BranchSide:      'lib/util.c:805,13'
              BranchSideFuncs:
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - putc
                - fprintf
                - fprintf
        - Branch String:   'lib/util.c:805,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:806,21'
              BranchSideFuncs:
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - putc
                - fprintf
                - fprintf
            - BranchSide:      'lib/util.c:823,17'
              BranchSideFuncs:
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - putc
                - fprintf
                - fprintf
                - fprintf
                - fprintf
        - Branch String:   'lib/util.c:807,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:808,25'
              BranchSideFuncs:
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - putc
                - fprintf
            - BranchSide:      'lib/util.c:810,21'
              BranchSideFuncs:
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - putc
                - fprintf
        - Branch String:   'lib/util.c:811,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:812,25'
              BranchSideFuncs:
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - putc
            - BranchSide:      'lib/util.c:814,13'
              BranchSideFuncs:
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - putc
        - Branch String:   'lib/util.c:814,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:815,25'
              BranchSideFuncs:
                - putc
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
            - BranchSide:      'lib/util.c:818,13'
              BranchSideFuncs:
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - putc
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
        - Branch String:   'lib/util.c:816,30'
          Branch Sides:
            - BranchSide:      'lib/util.c:816,33'
              BranchSideFuncs:
                - putc
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
            - BranchSide:      'lib/util.c:816,22'
              BranchSideFuncs:
                - putc
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
        - Branch String:   'lib/util.c:816,22'
          Branch Sides:
            - BranchSide:      'lib/util.c:816,43'
              BranchSideFuncs:
                - putc
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
            - BranchSide:      'lib/util.c:816,52'
              BranchSideFuncs:
                - putc
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
        - Branch String:   'lib/util.c:818,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:819,25'
              BranchSideFuncs:
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - putc
                - fprintf
                - fprintf
                - fprintf
                - fprintf
            - BranchSide:      'lib/util.c:821,21'
              BranchSideFuncs:
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - fprintf
                - putc
                - fprintf
                - fprintf
                - fprintf
                - fprintf
      Callsites:
        - Src:             'lib/util.c:796,9'
          Dst:             fprintf
        - Src:             'lib/util.c:799,13'
          Dst:             fprintf
        - Src:             'lib/util.c:802,13'
          Dst:             fprintf
        - Src:             'lib/util.c:806,13'
          Dst:             fprintf
        - Src:             'lib/util.c:808,17'
          Dst:             fprintf
        - Src:             'lib/util.c:810,13'
          Dst:             fprintf
        - Src:             'lib/util.c:812,17'
          Dst:             fprintf
        - Src:             'lib/util.c:816,17'
          Dst:             putc
        - Src:             'lib/util.c:819,17'
          Dst:             fprintf
        - Src:             'lib/util.c:821,13'
          Dst:             fprintf
        - Src:             'lib/util.c:823,9'
          Dst:             fprintf
    - functionName:    ovs_print_version
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 766
      functionLinenumberEnd: 771
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - char
        - char
      constantsTouched: []
      argNames:
        - min_ofp
        - max_ofp
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - printf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:768,17'
          Branch Sides:
            - BranchSide:      'lib/util.c:768,20'
              BranchSideFuncs:
                - printf
            - BranchSide:      'lib/util.c:769,47'
              BranchSideFuncs:
                - printf
        - Branch String:   'lib/util.c:768,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:768,9'
              BranchSideFuncs:
                - printf
            - BranchSide:      'lib/util.c:769,47'
              BranchSideFuncs:
                - printf
      Callsites:
        - Src:             'lib/util.c:767,5'
          Dst:             printf
        - Src:             'lib/util.c:769,9'
          Dst:             printf
    - functionName:    ovs_get_program_name
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 759
      functionLinenumberEnd: 760
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_get_program_version
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 750
      functionLinenumberEnd: 751
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    str_to_uint
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 889
      functionLinenumberEnd: 899
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - base
        - u
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - str_to_llong
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.c:892,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:892,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:893,10'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:892,23'
          Branch Sides:
            - BranchSide:      'lib/util.c:892,26'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:893,10'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:892,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:893,10'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:896,14'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:891,15'
          Dst:             str_to_llong
    - functionName:    ignore
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1320
      functionLinenumberEnd: 1320
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - x
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ctl_timeout_setup
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 732
      functionLinenumberEnd: 743
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - secs
      BBCount:         14
      ICount:          66
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - getenv
        - ignore
        - str_to_uint
        - time_alarm
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:733,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:734,21'
              BranchSideFuncs:
                - time_alarm
            - BranchSide:      'lib/util.c:740,9'
              BranchSideFuncs:
                - time_alarm
        - Branch String:   'lib/util.c:736,17'
          Branch Sides:
            - BranchSide:      'lib/util.c:736,20'
              BranchSideFuncs:
                - time_alarm
                - str_to_uint
                - ignore
            - BranchSide:      'lib/util.c:739,5'
              BranchSideFuncs:
                - time_alarm
        - Branch String:   'lib/util.c:736,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:737,32'
              BranchSideFuncs:
                - str_to_uint
                - ignore
                - time_alarm
            - BranchSide:      'lib/util.c:739,5'
              BranchSideFuncs:
                - time_alarm
        - Branch String:   'lib/util.c:740,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:740,9'
              BranchSideFuncs:
                - time_alarm
            - BranchSide:      'lib/util.c:741,20'
              BranchSideFuncs:
                - time_alarm
      Callsites:
        - Src:             'lib/util.c:734,21'
          Dst:             getenv
        - Src:             'lib/util.c:737,20'
          Dst:             str_to_uint
        - Src:             'lib/util.c:737,13'
          Dst:             ignore
        - Src:             'lib/util.c:741,9'
          Dst:             time_alarm
    - functionName:    get_boot_time
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 693
      functionLinenumberEnd: 725
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         25
      ICount:          104
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - fclose
        - fgets
        - fopen
        - ovs_scan
        - ovs_strerror
        - ovsthread_once_done
        - ovsthread_once_start
        - time_msec
        - vlog
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.c:699,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:699,9'
              BranchSideFuncs:
                - time_msec
                - time_msec
                - fopen
                - ovsthread_once_start.2280
                - __errno_location
                - ovs_strerror
                - vlog
                - ovsthread_once_done
                - fgets
                - ovsthread_once_start.2280
                - fclose
                - vlog
                - ovsthread_once_done
                - ovs_scan
            - BranchSide:      'lib/util.c:699,9'
              BranchSideFuncs:
                - time_msec
                - time_msec
                - fopen
                - ovsthread_once_start.2280
                - __errno_location
                - ovs_strerror
                - vlog
                - ovsthread_once_done
                - fgets
                - ovsthread_once_start.2280
                - fclose
                - vlog
                - ovsthread_once_done
                - ovs_scan
        - Branch String:   'lib/util.c:699,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:704,28'
              BranchSideFuncs:
                - time_msec
                - fopen
                - ovsthread_once_start.2280
                - __errno_location
                - ovs_strerror
                - vlog
                - ovsthread_once_done
                - fgets
                - ovsthread_once_start.2280
                - fclose
                - vlog
                - ovsthread_once_done
                - ovs_scan
            - BranchSide:      'lib/util.c:724,12'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:707,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:708,13'
              BranchSideFuncs:
                - fgets
                - ovsthread_once_start.2280
                - fclose
                - vlog
                - ovsthread_once_done
                - ovs_scan
            - BranchSide:      'lib/util.c:713,9'
              BranchSideFuncs:
                - fgets
                - ovsthread_once_start.2280
                - fclose
                - vlog
                - ovsthread_once_done
                - ovs_scan
        - Branch String:   'lib/util.c:708,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:708,13'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
                - ovsthread_once_done
            - BranchSide:      'lib/util.c:710,20'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:713,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:715,26'
              BranchSideFuncs:
                - ovs_scan
                - fgets
                - ovsthread_once_start.2280
                - fclose
                - vlog
                - ovsthread_once_done
            - BranchSide:      'lib/util.c:720,9'
              BranchSideFuncs:
                - ovsthread_once_start.2280
                - fclose
                - vlog
                - ovsthread_once_done
        - Branch String:   'lib/util.c:715,17'
          Branch Sides:
            - BranchSide:      'lib/util.c:713,9'
              BranchSideFuncs:
                - fclose
            - BranchSide:      'lib/util.c:716,29'
              BranchSideFuncs:
                - fclose
        - Branch String:   'lib/util.c:720,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:720,9'
              BranchSideFuncs:
                - vlog
                - ovsthread_once_done
                - fclose
            - BranchSide:      'lib/util.c:722,16'
              BranchSideFuncs:
                - fclose
      Callsites:
        - Src:             'lib/util.c:699,9'
          Dst:             time_msec
        - Src:             'lib/util.c:704,28'
          Dst:             time_msec
        - Src:             'lib/util.c:706,18'
          Dst:             fopen
        - Src:             'lib/util.c:708,13'
          Dst:             ovsthread_once_start
        - Src:             'lib/util.c:708,13'
          Dst:             __errno_location
        - Src:             'lib/util.c:708,13'
          Dst:             ovs_strerror
        - Src:             'lib/util.c:708,13'
          Dst:             vlog
        - Src:             'lib/util.c:708,13'
          Dst:             ovsthread_once_done
        - Src:             'lib/util.c:713,16'
          Dst:             fgets
        - Src:             'lib/util.c:715,17'
          Dst:             ovs_scan
        - Src:             'lib/util.c:720,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/util.c:720,9'
          Dst:             vlog
        - Src:             'lib/util.c:720,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/util.c:722,9'
          Dst:             fclose
    - functionName:    fgets
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    subprogram_name_set
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - value
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - subprogram_name_init
        - subprogram_name_set_unsafe
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:65,1'
          Dst:             subprogram_name_init
        - Src:             'lib/util.c:65,1'
          Dst:             subprogram_name_set_unsafe
    - functionName:    set_subprogram_name
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 648
      functionLinenumberEnd: 665
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - subprogram_name
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - pthread_self
        - pthread_setname_np
        - strlen
        - subprogram_name_set
        - xstrdup
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/util.c:649,27'
          Branch Sides:
            - BranchSide:      'lib/util.c:649,45'
              BranchSideFuncs:
                - xstrdup
                - subprogram_name_set
                - free
                - strlen
                - pthread_self
                - pthread_setname_np
                - strlen
            - BranchSide:      'lib/util.c:649,63'
              BranchSideFuncs:
                - xstrdup
                - subprogram_name_set
                - free
                - strlen
                - pthread_self
                - pthread_setname_np
                - strlen
        - Branch String:   'lib/util.c:655,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:655,9'
              BranchSideFuncs:
                - strlen
                - pthread_self
                - pthread_setname_np
            - BranchSide:      'lib/util.c:656,17'
              BranchSideFuncs:
                - strlen
                - pthread_self
                - pthread_setname_np
      Callsites:
        - Src:             'lib/util.c:649,19'
          Dst:             xstrdup
        - Src:             'lib/util.c:650,10'
          Dst:             subprogram_name_set
        - Src:             'lib/util.c:655,9'
          Dst:             strlen
        - Src:             'lib/util.c:656,31'
          Dst:             strlen
        - Src:             'lib/util.c:659,24'
          Dst:             pthread_self
        - Src:             'lib/util.c:659,5'
          Dst:             pthread_setname_np
    - functionName:    pthread_self
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_setname_np
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_set_program_name
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 594
      functionLinenumberEnd: 633
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - argv0
        - version
      BBCount:         12
      ICount:          91
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - assert_single_threaded_at
        - strcmp
        - strncmp
        - strrchr
        - xasprintf
        - xstrdup
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:609,24'
          Branch Sides:
            - BranchSide:      'lib/util.c:609,32'
              BranchSideFuncs:
                - xstrdup
                - assert_single_threaded_at
                - free
                - strncmp
                - free
                - strcmp
                - xasprintf
                - xasprintf
                - xstrdup
                - free
            - BranchSide:      'lib/util.c:609,44'
              BranchSideFuncs:
                - xstrdup
                - assert_single_threaded_at
                - free
                - strncmp
                - free
                - strcmp
                - xasprintf
                - xasprintf
                - xstrdup
                - free
        - Branch String:   'lib/util.c:615,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:616,26'
              BranchSideFuncs:
                - xstrdup
                - free
                - free
                - strcmp
                - xasprintf
                - xasprintf
            - BranchSide:      'lib/util.c:620,20'
              BranchSideFuncs:
                - free
                - strcmp
                - xasprintf
                - xasprintf
        - Branch String:   'lib/util.c:623,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:626,37'
              BranchSideFuncs:
                - xasprintf
            - BranchSide:      'lib/util.c:631,37'
              BranchSideFuncs:
                - xasprintf
      Callsites:
        - Src:             'lib/util.c:608,25'
          Dst:             strrchr
        - Src:             'lib/util.c:609,16'
          Dst:             xstrdup
        - Src:             'lib/util.c:612,5'
          Dst:             assert_single_threaded_at
        - Src:             'lib/util.c:615,9'
          Dst:             strncmp
        - Src:             'lib/util.c:617,20'
          Dst:             xstrdup
        - Src:             'lib/util.c:623,10'
          Dst:             strcmp
        - Src:             'lib/util.c:624,27'
          Dst:             xasprintf
        - Src:             'lib/util.c:628,27'
          Dst:             xasprintf
    - functionName:    strrchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_error
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 490
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - err_no
        - format
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_error_valist
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:488,5'
          Dst:             ovs_error_valist
    - functionName:    string_ends_with
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 419
      functionLinenumberEnd: 424
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - str
        - suffix
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strcmp
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:423,36'
          Branch Sides:
            - BranchSide:      'lib/util.c:423,36'
              BranchSideFuncs:
                - strcmp
            - BranchSide:      'lib/util.c:424,25'
              BranchSideFuncs:
                - strcmp
      Callsites:
        - Src:             'lib/util.c:420,19'
          Dst:             strlen
        - Src:             'lib/util.c:421,22'
          Dst:             strlen
        - Src:             'lib/util.c:424,18'
          Dst:             strcmp
    - functionName:    ovs_strzcpy
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 406
      functionLinenumberEnd: 412
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - dst
        - src
        - size
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strnlen
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/util.c:407,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:407,9'
              BranchSideFuncs:
                - strnlen
            - BranchSide:      'lib/util.c:408,30'
              BranchSideFuncs:
                - strnlen
      Callsites:
        - Src:             'lib/util.c:408,22'
          Dst:             strnlen
    - functionName:    strnlen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_strlcpy
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 390
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - dst
        - src
        - size
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strnlen
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/util.c:385,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:385,9'
              BranchSideFuncs:
                - strnlen
            - BranchSide:      'lib/util.c:386,30'
              BranchSideFuncs:
                - strnlen
      Callsites:
        - Src:             'lib/util.c:386,22'
          Dst:             strnlen
    - functionName:    free_pagealign
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 363
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - free_size_align
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:364,5'
          Dst:             free_size_align
    - functionName:    free_size_align
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 315
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_page_size
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 669
      functionLinenumberEnd: 686
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          40
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sysconf
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/util.c:672,10'
          Branch Sides:
            - BranchSide:      'lib/util.c:672,10'
              BranchSideFuncs:
                - sysconf
            - BranchSide:      'lib/util.c:672,10'
              BranchSideFuncs:
                - sysconf
        - Branch String:   'lib/util.c:672,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:672,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:674,26'
              BranchSideFuncs:
                - sysconf
        - Branch String:   'lib/util.c:681,13'
          Branch Sides:
            - BranchSide:      'lib/util.c:682,22'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.c:684,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:674,26'
          Dst:             sysconf
    - functionName:    xmalloc_pagealign
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - size
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_page_size
        - xmalloc_size_align
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:358,37'
          Dst:             get_page_size
        - Src:             'lib/util.c:358,12'
          Dst:             xmalloc_size_align
    - functionName:    xmalloc_size_align
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - size
        - alignment
      BBCount:         8
      ICount:          52
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - out_of_memory
        - posix_memalign
        - util_xalloc_add
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/util.c:260,43'
          Branch Sides:
            - BranchSide:      'lib/util.c:260,50'
              BranchSideFuncs:
                - posix_memalign
                - out_of_memory
            - BranchSide:      'lib/util.c:260,13'
              BranchSideFuncs:
                - posix_memalign
                - out_of_memory
        - Branch String:   'lib/util.c:261,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:262,9'
              BranchSideFuncs:
                - out_of_memory
            - BranchSide:      'lib/util.c:264,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:259,5'
          Dst:             util_xalloc_add
        - Src:             'lib/util.c:260,13'
          Dst:             posix_memalign
        - Src:             'lib/util.c:262,9'
          Dst:             out_of_memory
    - functionName:    posix_memalign
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    free_cacheline
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - free_size_align
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:352,5'
          Dst:             free_size_align
    - functionName:    xzalloc_cacheline
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 344
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - size
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xmalloc_cacheline
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:342,15'
          Dst:             xmalloc_cacheline
    - functionName:    xmalloc_cacheline
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 333
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - size
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xmalloc_size_align
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:334,12'
          Dst:             xmalloc_size_align
    - functionName:    x2nrealloc
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - p
        - n
        - s
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - xrealloc
      functionUses:    7
      BranchProfiles:
        - Branch String:   'lib/util.c:244,10'
          Branch Sides:
            - BranchSide:      'lib/util.c:244,10'
              BranchSideFuncs:
                - xrealloc
            - BranchSide:      'lib/util.c:244,29'
              BranchSideFuncs:
                - xrealloc
      Callsites:
        - Src:             'lib/util.c:245,12'
          Dst:             xrealloc
    - functionName:    nullable_string_is_equal
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:218,12'
          Branch Sides:
            - BranchSide:      'lib/util.c:218,16'
              BranchSideFuncs:
                - strcmp
            - BranchSide:      'lib/util.c:218,38'
              BranchSideFuncs: []
        - Branch String:   'lib/util.c:218,18'
          Branch Sides:
            - BranchSide:      'lib/util.c:218,29'
              BranchSideFuncs:
                - strcmp
            - BranchSide:      'lib/util.c:218,18'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:218,22'
          Dst:             strcmp
    - functionName:    nullable_xstrdup
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - xstrdup
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/util.c:212,12'
          Branch Sides:
            - BranchSide:      'lib/util.c:212,24'
              BranchSideFuncs:
                - xstrdup
            - BranchSide:      'lib/util.c:212,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:212,16'
          Dst:             xstrdup
    - functionName:    nullable_memcpy
      functionSourceFile: '/src/openvswitch/lib/util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - dst
        - src
        - n
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.h:206,9'
          Branch Sides:
            - BranchSide:      'lib/util.h:206,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.h:207,16'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    xmemdup
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - p_
        - size
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - nullable_memcpy
        - xmalloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:189,15'
          Dst:             xmalloc
        - Src:             'lib/util.c:190,5'
          Dst:             nullable_memcpy
    - functionName:    xzalloc
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - size
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - util_xalloc_add
        - xzalloc__
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:168,5'
          Dst:             util_xalloc_add
        - Src:             'lib/util.c:169,12'
          Dst:             xzalloc__
    - functionName:    xzalloc__
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - size
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xcalloc__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:135,12'
          Dst:             xcalloc__
    - functionName:    xcalloc__
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - count
        - size
      BBCount:         11
      ICount:          58
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - out_of_memory
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/util.c:125,21'
          Branch Sides:
            - BranchSide:      'lib/util.c:125,24'
              BranchSideFuncs:
                - malloc
                - out_of_memory
                - calloc
            - BranchSide:      'lib/util.c:125,53'
              BranchSideFuncs:
                - malloc
                - out_of_memory
        - Branch String:   'lib/util.c:125,15'
          Branch Sides:
            - BranchSide:      'lib/util.c:125,38'
              BranchSideFuncs:
                - calloc
                - out_of_memory
            - BranchSide:      'lib/util.c:125,53'
              BranchSideFuncs:
                - malloc
                - out_of_memory
        - Branch String:   'lib/util.c:126,9'
          Branch Sides:
            - BranchSide:      'lib/util.c:127,9'
              BranchSideFuncs:
                - out_of_memory
            - BranchSide:      'lib/util.c:129,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.c:125,31'
          Dst:             calloc
        - Src:             'lib/util.c:127,9'
          Dst:             out_of_memory
    - functionName:    calloc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xcalloc
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - count
        - size
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - util_xalloc_add
        - xcalloc__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:161,5'
          Dst:             util_xalloc_add
        - Src:             'lib/util.c:162,12'
          Dst:             xcalloc__
    - functionName:    memory_all_locked
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_all_memory_locked
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_assert_failure
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - where
        - function
        - condition
      BBCount:         6
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 5
      functionsReached:
        - abort
        - fprintf
        - vlog_abort
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/util.c:88,5'
          Branch Sides:
            - BranchSide:      'lib/util.c:90,9'
              BranchSideFuncs:
                - vlog_abort
            - BranchSide:      'lib/util.c:95,17'
              BranchSideFuncs:
                - fprintf
                - abort
            - BranchSide:      'lib/util.c:100,9'
              BranchSideFuncs:
                - abort
      Callsites:
        - Src:             'lib/util.c:90,9'
          Dst:             vlog_abort
        - Src:             'lib/util.c:95,9'
          Dst:             fprintf
        - Src:             'lib/util.c:97,9'
          Dst:             abort
        - Src:             'lib/util.c:100,9'
          Dst:             abort
    - functionName:    ovs_fatal
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - err_no
        - format
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_fatal_valist
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:465,5'
          Dst:             ovs_fatal_valist
    - functionName:    ovs_fatal_valist
      functionSourceFile: '/src/openvswitch/lib/util.c'
      linkageType:     InternalLinkage
      functionLinenumber: 470
      functionLinenumberEnd: 473
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - err_no
        - format
        - args
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - exit
        - ovs_error_valist
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.c:472,5'
          Dst:             ovs_error_valist
        - Src:             'lib/util.c:473,5'
          Dst:             exit
    - functionName:    init_this_module_vlog
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/vlog.c:49,1'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:49,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/vlog.c:49,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/vlog.c:49,1'
          Dst:             vlog_insert_module
    - functionName:    vlog_insert_module
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - vlog
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_insert
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    31
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:219,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:220,5'
          Dst:             ovs_list_insert
        - Src:             'lib/vlog.c:221,5'
          Dst:             ovs_mutex_unlock
    - functionName:    ovs_list_insert
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - before
        - elem
      BBCount:         1
      ICount:          30
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fetch_braces
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1008
      functionLinenumberEnd: 1018
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - p
        - def
        - out
        - out_size
      BBCount:         9
      ICount:          80
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_strlcpy
        - strcspn
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/vlog.c:1009,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1010,28'
              BranchSideFuncs:
                - strcspn
            - BranchSide:      'lib/vlog.c:1016,21'
              BranchSideFuncs:
                - ovs_strlcpy
        - Branch String:   'lib/vlog.c:1011,25'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1011,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/vlog.c:1011,16'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/vlog.c:1010,20'
          Dst:             strcspn
        - Src:             'lib/vlog.c:1016,9'
          Dst:             ovs_strlcpy
    - functionName:    msg_num_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_all_rate_limits
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 780
      functionLinenumberEnd: 788
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - enable
      BBCount:         10
      ICount:          61
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/vlog.c:784,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:784,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
            - BranchSide:      'lib/vlog.c:784,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
        - Branch String:   'lib/vlog.c:784,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:785,33'
              BranchSideFuncs:
                - ovs_mutex_unlock
            - BranchSide:      'lib/vlog.c:787,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/vlog.c:783,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:787,5'
          Dst:             ovs_mutex_unlock
    - functionName:    set_rate_limits
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 793
      functionLinenumberEnd: 813
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - conn
        - argc
        - argv
        - enable
      BBCount:         16
      ICount:          103
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - set_all_rate_limits
        - strcasecmp
        - unixctl_command_reply
        - unixctl_command_reply_error
        - vlog_module_from_name
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/vlog.c:794,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:797,16'
              BranchSideFuncs:
                - unixctl_command_reply
                - strcasecmp
                - set_all_rate_limits
                - vlog_module_from_name
                - unixctl_command_reply_error
            - BranchSide:      'lib/vlog.c:810,29'
              BranchSideFuncs:
                - set_all_rate_limits
                - unixctl_command_reply
        - Branch String:   'lib/vlog.c:797,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:798,29'
              BranchSideFuncs:
                - strcasecmp
                - set_all_rate_limits
                - unixctl_command_reply
                - vlog_module_from_name
                - unixctl_command_reply_error
            - BranchSide:      'lib/vlog.c:809,5'
              BranchSideFuncs:
                - unixctl_command_reply
        - Branch String:   'lib/vlog.c:798,17'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:799,37'
              BranchSideFuncs:
                - vlog_module_from_name
                - unixctl_command_reply_error
                - unixctl_command_reply
                - strcasecmp
                - set_all_rate_limits
            - BranchSide:      'lib/vlog.c:801,68'
              BranchSideFuncs:
                - vlog_module_from_name
                - unixctl_command_reply_error
                - unixctl_command_reply
                - strcasecmp
                - set_all_rate_limits
        - Branch String:   'lib/vlog.c:802,21'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:803,49'
              BranchSideFuncs:
                - unixctl_command_reply
                - strcasecmp
                - set_all_rate_limits
                - vlog_module_from_name
                - unixctl_command_reply_error
            - BranchSide:      'lib/vlog.c:806,45'
              BranchSideFuncs:
                - unixctl_command_reply
                - strcasecmp
                - set_all_rate_limits
                - vlog_module_from_name
                - unixctl_command_reply_error
      Callsites:
        - Src:             'lib/vlog.c:798,18'
          Dst:             strcasecmp
        - Src:             'lib/vlog.c:799,17'
          Dst:             set_all_rate_limits
        - Src:             'lib/vlog.c:801,46'
          Dst:             vlog_module_from_name
        - Src:             'lib/vlog.c:803,21'
          Dst:             unixctl_command_reply_error
        - Src:             'lib/vlog.c:810,9'
          Dst:             set_all_rate_limits
        - Src:             'lib/vlog.c:812,5'
          Dst:             unixctl_command_reply
    - functionName:    vlog_module_from_name
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
      BBCount:         13
      ICount:          73
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - strcasecmp
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/vlog.c:239,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:239,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - strcasecmp
                - ovs_mutex_unlock
            - BranchSide:      'lib/vlog.c:239,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - strcasecmp
                - ovs_mutex_unlock
        - Branch String:   'lib/vlog.c:239,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:240,25'
              BranchSideFuncs:
                - strcasecmp
                - ovs_mutex_unlock
                - ovs_mutex_unlock
            - BranchSide:      'lib/vlog.c:245,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
        - Branch String:   'lib/vlog.c:240,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:241,13'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - strcasecmp
                - ovs_mutex_unlock
            - BranchSide:      'lib/vlog.c:244,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - strcasecmp
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/vlog.c:238,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:240,14'
          Dst:             strcasecmp
        - Src:             'lib/vlog.c:241,13'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:245,5'
          Dst:             ovs_mutex_unlock
    - functionName:    update_min_level
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - module
      BBCount:         14
      ICount:          78
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/vlog.c:266,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:267,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/vlog.c:274,1'
              BranchSideFuncs: []
        - Branch String:   'lib/vlog.c:267,25'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:267,28'
              BranchSideFuncs: []
            - BranchSide:      'lib/vlog.c:268,37'
              BranchSideFuncs: []
        - Branch String:   'lib/vlog.c:267,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:268,37'
              BranchSideFuncs: []
            - BranchSide:      'lib/vlog.c:273,5'
              BranchSideFuncs: []
        - Branch String:   'lib/vlog.c:269,17'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:270,37'
              BranchSideFuncs: []
            - BranchSide:      'lib/vlog.c:272,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    vlog_usage
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1387
      functionLinenumberEnd: 1398
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_logdir
        - printf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/vlog.c:1397,12'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1397,12'
              BranchSideFuncs:
                - ovs_logdir
                - printf
            - BranchSide:      'lib/vlog.c:1397,12'
              BranchSideFuncs:
                - ovs_logdir
                - printf
      Callsites:
        - Src:             'lib/vlog.c:1397,12'
          Dst:             ovs_logdir
        - Src:             'lib/vlog.c:1388,5'
          Dst:             printf
    - functionName:    vlog_rate_limit
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1375
      functionLinenumberEnd: 1383
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - module
        - level
        - rl
        - message
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - vlog_should_drop
        - vlog_valist
      functionUses:    61
      BranchProfiles:
        - Branch String:   'lib/vlog.c:1376,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1376,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/vlog.c:1379,9'
              BranchSideFuncs:
                - vlog_valist
      Callsites:
        - Src:             'lib/vlog.c:1376,10'
          Dst:             vlog_should_drop
        - Src:             'lib/vlog.c:1380,9'
          Dst:             vlog_valist
    - functionName:    vlog_should_drop
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1332
      functionLinenumberEnd: 1370
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - module
        - level
        - rl
      BBCount:         16
      ICount:          143
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - time_now
        - token_bucket_withdraw
        - vlog
        - vlog_is_enabled
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/vlog.c:1333,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1334,9'
              BranchSideFuncs:
                - vlog_is_enabled
                - ovs_mutex_lock_at
                - token_bucket_withdraw
                - time_now
                - ovs_mutex_unlock
                - ovs_mutex_unlock
                - time_now
                - ovs_mutex_unlock
                - vlog
            - BranchSide:      'lib/vlog.c:1337,26'
              BranchSideFuncs:
                - vlog_is_enabled
                - ovs_mutex_lock_at
                - token_bucket_withdraw
                - time_now
                - ovs_mutex_unlock
                - ovs_mutex_unlock
                - time_now
                - ovs_mutex_unlock
                - vlog
        - Branch String:   'lib/vlog.c:1337,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1338,9'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - token_bucket_withdraw
                - time_now
                - ovs_mutex_unlock
                - ovs_mutex_unlock
                - time_now
                - ovs_mutex_unlock
                - vlog
            - BranchSide:      'lib/vlog.c:1341,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - token_bucket_withdraw
                - time_now
                - ovs_mutex_unlock
                - ovs_mutex_unlock
                - time_now
                - ovs_mutex_unlock
                - vlog
        - Branch String:   'lib/vlog.c:1342,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1343,22'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - time_now
                - ovs_mutex_unlock
                - vlog
            - BranchSide:      'lib/vlog.c:1353,10'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - time_now
                - ovs_mutex_unlock
                - vlog
        - Branch String:   'lib/vlog.c:1344,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1345,33'
              BranchSideFuncs:
                - ovs_mutex_unlock
            - BranchSide:      'lib/vlog.c:1347,28'
              BranchSideFuncs:
                - ovs_mutex_unlock
        - Branch String:   'lib/vlog.c:1353,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1354,27'
              BranchSideFuncs:
                - time_now
                - ovs_mutex_unlock
                - vlog
            - BranchSide:      'lib/vlog.c:1356,22'
              BranchSideFuncs:
                - time_now
                - ovs_mutex_unlock
                - vlog
      Callsites:
        - Src:             'lib/vlog.c:1337,10'
          Dst:             vlog_is_enabled
        - Src:             'lib/vlog.c:1341,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:1342,10'
          Dst:             token_bucket_withdraw
        - Src:             'lib/vlog.c:1343,22'
          Dst:             time_now
        - Src:             'lib/vlog.c:1349,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:1354,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:1356,22'
          Dst:             time_now
        - Src:             'lib/vlog.c:1361,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:1363,9'
          Dst:             vlog
    - functionName:    vlog_valist
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1160
      functionLinenumberEnd: 1241
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - module
        - level
        - message
        - args
      BBCount:         43
      ICount:          307
      EdgeCount:       57
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - async_append_flush
        - async_append_write
        - ds_cstr
        - ds_destroy
        - ds_init
        - ds_put_char
        - ds_reserve
        - format_log_message
        - fputs
        - ignore
        - msg_num_get
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovs_rwlock_rdlock_at
        - ovs_rwlock_unlock
        - send_to_syslog_fd
        - strtok_r
        - vlog_init
        - write
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/vlog.c:1165,26'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1165,29'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - __errno_location
                - vlog_init
                - ds_init
                - ds_reserve
                - msg_num_get
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - format_log_message
                - ds_put_char.2494
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - write
                - ignore
                - async_append_write
                - async_append_flush
                - format_log_message
                - strtok_r
                - format_log_message
                - ds_cstr
                - send_to_syslog_fd
                - strtok_r
                - format_log_message
                - ds_put_char.2494
                - ds_cstr
                - fputs
            - BranchSide:      'lib/vlog.c:1172,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - __errno_location
                - vlog_init
                - ds_init
                - ds_reserve
                - msg_num_get
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - format_log_message
                - ds_put_char.2494
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - write
                - ignore
                - async_append_write
                - async_append_flush
                - format_log_message
                - strtok_r
                - format_log_message
                - ds_cstr
                - send_to_syslog_fd
                - strtok_r
                - format_log_message
                - ds_put_char.2494
                - ds_cstr
                - fputs
        - Branch String:   'lib/vlog.c:1165,43'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1165,46'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - __errno_location
                - vlog_init
                - ds_init
                - ds_reserve
                - msg_num_get
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - format_log_message
                - ds_put_char.2494
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - write
                - ignore
                - async_append_write
                - async_append_flush
                - format_log_message
                - strtok_r
                - format_log_message
                - ds_cstr
                - send_to_syslog_fd
                - strtok_r
                - format_log_message
                - ds_put_char.2494
                - ds_cstr
                - fputs
            - BranchSide:      'lib/vlog.c:1172,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - __errno_location
                - vlog_init
                - ds_init
                - ds_reserve
                - msg_num_get
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - format_log_message
                - ds_put_char.2494
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - write
                - ignore
                - async_append_write
                - async_append_flush
                - format_log_message
                - strtok_r
                - format_log_message
                - ds_cstr
                - send_to_syslog_fd
                - strtok_r
                - format_log_message
                - ds_put_char.2494
                - ds_cstr
                - fputs
        - Branch String:   'lib/vlog.c:1165,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1169,9'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - __errno_location
                - vlog_init
                - ds_init
                - ds_reserve
                - msg_num_get
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - format_log_message
                - ds_put_char.2494
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - write
                - ignore
                - async_append_write
                - async_append_flush
                - format_log_message
                - strtok_r
                - format_log_message
                - ds_cstr
                - send_to_syslog_fd
                - strtok_r
                - format_log_message
                - ds_put_char.2494
                - ds_cstr
                - fputs
            - BranchSide:      'lib/vlog.c:1172,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - __errno_location
                - vlog_init
                - ds_init
                - ds_reserve
                - msg_num_get
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - format_log_message
                - ds_put_char.2494
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - write
                - ignore
                - async_append_write
                - async_append_flush
                - format_log_message
                - strtok_r
                - format_log_message
                - ds_cstr
                - send_to_syslog_fd
                - strtok_r
                - format_log_message
                - ds_put_char.2494
                - ds_cstr
                - fputs
        - Branch String:   'lib/vlog.c:1175,24'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1175,27'
              BranchSideFuncs:
                - __errno_location
                - vlog_init
                - ds_init
                - ds_reserve
                - msg_num_get
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - format_log_message
                - ds_put_char.2494
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - write
                - ignore
                - async_append_write
                - async_append_flush
                - format_log_message
                - strtok_r
                - format_log_message
                - ds_cstr
                - send_to_syslog_fd
                - strtok_r
                - format_log_message
                - ds_put_char.2494
                - ds_cstr
                - fputs
            - BranchSide:      'lib/vlog.c:1176,26'
              BranchSideFuncs:
                - __errno_location
                - vlog_init
                - ds_init
                - ds_reserve
                - msg_num_get
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - format_log_message
                - ds_put_char.2494
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - write
                - ignore
                - async_append_write
                - async_append_flush
                - format_log_message
                - strtok_r
                - format_log_message
                - ds_cstr
                - send_to_syslog_fd
                - strtok_r
                - format_log_message
                - ds_put_char.2494
                - ds_cstr
                - fputs
        - Branch String:   'lib/vlog.c:1175,41'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1175,44'
              BranchSideFuncs:
                - __errno_location
                - vlog_init
                - ds_init
                - ds_reserve
                - msg_num_get
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - format_log_message
                - ds_put_char.2494
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - write
                - ignore
                - async_append_write
                - async_append_flush
                - format_log_message
                - strtok_r
                - format_log_message
                - ds_cstr
                - send_to_syslog_fd
                - strtok_r
                - format_log_message
                - ds_put_char.2494
                - ds_cstr
                - fputs
            - BranchSide:      'lib/vlog.c:1176,26'
              BranchSideFuncs:
                - __errno_location
                - vlog_init
                - ds_init
                - ds_reserve
                - msg_num_get
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - format_log_message
                - ds_put_char.2494
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - write
                - ignore
                - async_append_write
                - async_append_flush
                - format_log_message
                - strtok_r
                - format_log_message
                - ds_cstr
                - send_to_syslog_fd
                - strtok_r
                - format_log_message
                - ds_put_char.2494
                - ds_cstr
                - fputs
        - Branch String:   'lib/vlog.c:1175,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1175,9'
              BranchSideFuncs:
                - __errno_location
                - vlog_init
                - ds_init
                - ds_reserve
                - msg_num_get
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - format_log_message
                - ds_put_char.2494
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - write
                - ignore
                - async_append_write
                - async_append_flush
                - format_log_message
                - strtok_r
                - format_log_message
                - ds_cstr
                - send_to_syslog_fd
                - strtok_r
                - format_log_message
                - ds_put_char.2494
                - ds_cstr
                - fputs
            - BranchSide:      'lib/vlog.c:1176,26'
              BranchSideFuncs:
                - __errno_location
                - vlog_init
                - ds_init
                - ds_reserve
                - msg_num_get
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - format_log_message
                - ds_put_char.2494
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - write
                - ignore
                - async_append_write
                - async_append_flush
                - format_log_message
                - strtok_r
                - format_log_message
                - ds_cstr
                - send_to_syslog_fd
                - strtok_r
                - format_log_message
                - ds_put_char.2494
                - ds_cstr
                - fputs
        - Branch String:   'lib/vlog.c:1186,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1187,32'
              BranchSideFuncs:
                - format_log_message
                - ds_put_char.2494
                - ds_cstr
                - fputs
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - format_log_message
                - ds_put_char.2494
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - write
                - ignore
                - async_append_write
                - async_append_flush
                - format_log_message
                - strtok_r
                - format_log_message
                - ds_cstr
                - send_to_syslog_fd
                - strtok_r
            - BranchSide:      'lib/vlog.c:1194,13'
              BranchSideFuncs:
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - format_log_message
                - ds_put_char.2494
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - write
                - ignore
                - async_append_write
                - async_append_flush
                - format_log_message
                - strtok_r
                - format_log_message
                - ds_cstr
                - send_to_syslog_fd
                - strtok_r
        - Branch String:   'lib/vlog.c:1194,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1195,46'
              BranchSideFuncs:
                - format_log_message
                - strtok_r
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - format_log_message
                - ds_put_char.2494
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - write
                - ignore
                - async_append_write
                - async_append_flush
                - format_log_message
                - ds_cstr
                - send_to_syslog_fd
                - strtok_r
            - BranchSide:      'lib/vlog.c:1218,13'
              BranchSideFuncs:
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - format_log_message
                - ds_put_char.2494
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - write
                - ignore
                - async_append_write
                - async_append_flush
        - Branch String:   'lib/vlog.c:1202,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1204,17'
              BranchSideFuncs:
                - strtok_r
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - format_log_message
                - ds_put_char.2494
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - write
                - ignore
                - async_append_write
                - async_append_flush
                - format_log_message
                - ds_cstr
                - send_to_syslog_fd
            - BranchSide:      'lib/vlog.c:1209,17'
              BranchSideFuncs:
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - format_log_message
                - ds_put_char.2494
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - write
                - ignore
                - async_append_write
                - async_append_flush
                - format_log_message
                - ds_cstr
                - send_to_syslog_fd
        - Branch String:   'lib/vlog.c:1209,17'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1210,36'
              BranchSideFuncs:
                - format_log_message
                - ds_cstr
                - send_to_syslog_fd
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - format_log_message
                - ds_put_char.2494
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - write
                - ignore
                - async_append_write
                - async_append_flush
            - BranchSide:      'lib/vlog.c:1216,9'
              BranchSideFuncs:
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - format_log_message
                - ds_put_char.2494
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - write
                - ignore
                - async_append_write
                - async_append_flush
        - Branch String:   'lib/vlog.c:1218,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1219,32'
              BranchSideFuncs:
                - format_log_message
                - ds_put_char.2494
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - write
                - ignore
                - async_append_write
                - async_append_flush
            - BranchSide:      'lib/vlog.c:1236,9'
              BranchSideFuncs:
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
        - Branch String:   'lib/vlog.c:1224,17'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1225,21'
              BranchSideFuncs:
                - write
                - ignore
                - ovs_mutex_unlock
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - async_append_write
                - async_append_flush
            - BranchSide:      'lib/vlog.c:1234,13'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
        - Branch String:   'lib/vlog.c:1225,21'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1226,40'
              BranchSideFuncs:
                - async_append_write
                - ovs_mutex_unlock
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
                - async_append_flush
            - BranchSide:      'lib/vlog.c:1231,34'
              BranchSideFuncs:
                - write
                - ignore
                - ovs_mutex_unlock
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
        - Branch String:   'lib/vlog.c:1227,25'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1228,44'
              BranchSideFuncs:
                - async_append_flush
                - ovs_mutex_unlock
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
            - BranchSide:      'lib/vlog.c:1230,17'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - ovs_rwlock_unlock
                - ds_destroy
                - __errno_location
      Callsites:
        - Src:             'lib/vlog.c:1172,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:1174,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:1176,26'
          Dst:             __errno_location
        - Src:             'lib/vlog.c:1179,9'
          Dst:             vlog_init
        - Src:             'lib/vlog.c:1181,9'
          Dst:             ds_init
        - Src:             'lib/vlog.c:1182,9'
          Dst:             ds_reserve
        - Src:             'lib/vlog.c:1183,12'
          Dst:             msg_num_get
        - Src:             'lib/vlog.c:1185,9'
          Dst:             ovs_rwlock_rdlock_at
        - Src:             'lib/vlog.c:1187,13'
          Dst:             format_log_message
        - Src:             'lib/vlog.c:1190,13'
          Dst:             ds_put_char
        - Src:             'lib/vlog.c:1191,19'
          Dst:             ds_cstr
        - Src:             'lib/vlog.c:1191,13'
          Dst:             fputs
        - Src:             'lib/vlog.c:1200,13'
          Dst:             format_log_message
        - Src:             'lib/vlog.c:1202,25'
          Dst:             strtok_r
        - Src:             'lib/vlog.c:1203,25'
          Dst:             strtok_r
        - Src:             'lib/vlog.c:1210,17'
          Dst:             format_log_message
        - Src:             'lib/vlog.c:1214,35'
          Dst:             ds_cstr
        - Src:             'lib/vlog.c:1214,17'
          Dst:             send_to_syslog_fd
        - Src:             'lib/vlog.c:1219,13'
          Dst:             format_log_message
        - Src:             'lib/vlog.c:1221,13'
          Dst:             ds_put_char
        - Src:             'lib/vlog.c:1223,13'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:1226,21'
          Dst:             async_append_write
        - Src:             'lib/vlog.c:1228,25'
          Dst:             async_append_flush
        - Src:             'lib/vlog.c:1231,28'
          Dst:             write
        - Src:             'lib/vlog.c:1231,21'
          Dst:             ignore
        - Src:             'lib/vlog.c:1234,13'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:1236,9'
          Dst:             ovs_rwlock_unlock
        - Src:             'lib/vlog.c:1238,9'
          Dst:             ds_destroy
        - Src:             'lib/vlog.c:1239,9'
          Dst:             __errno_location
    - functionName:    vlog_init
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 841
      functionLinenumberEnd: 901
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         34
      ICount:          181
      EdgeCount:       43
      CyclomaticComplexity: 11
      functionsReached:
        - getenv
        - ovs_rwlock_rdlock_at
        - ovs_rwlock_unlock
        - ovsthread_once_done
        - ovsthread_once_start
        - syslog_libc_create
        - time_wall_msec
        - unixctl_command_register
        - vlog
        - vlog_disable_rate_limit
        - vlog_enable_rate_limit
        - vlog_inject_info_log
        - vlog_set_syslog_method
        - vlog_unixctl_close
        - vlog_unixctl_list
        - vlog_unixctl_list_pattern
        - vlog_unixctl_reopen
        - vlog_unixctl_set
        - xastrftime_msec
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/vlog.c:844,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:844,9'
              BranchSideFuncs:
                - ovsthread_once_start.2519
                - getenv
                - syslog_libc_create
                - ovsthread_once_done
                - time_wall_msec
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - vlog
                - xastrftime_msec
                - free
                - vlog
                - vlog_set_syslog_method
            - BranchSide:      'lib/vlog.c:844,9'
              BranchSideFuncs:
                - ovsthread_once_start.2519
                - getenv
                - syslog_libc_create
                - ovsthread_once_done
                - time_wall_msec
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - vlog
                - xastrftime_msec
                - free
                - vlog
                - vlog_set_syslog_method
        - Branch String:   'lib/vlog.c:844,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:844,9'
              BranchSideFuncs:
                - getenv
                - syslog_libc_create
                - ovsthread_once_done
                - time_wall_msec
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - vlog
                - xastrftime_msec
                - free
                - vlog
                - vlog_set_syslog_method
            - BranchSide:      'lib/vlog.c:852,9'
              BranchSideFuncs:
                - getenv
                - syslog_libc_create
                - ovsthread_once_done
                - time_wall_msec
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - vlog
                - xastrftime_msec
                - free
                - vlog
                - vlog_set_syslog_method
        - Branch String:   'lib/vlog.c:853,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:854,25'
              BranchSideFuncs:
                - ovsthread_once_done
                - time_wall_msec
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - vlog
                - xastrftime_msec
                - free
                - vlog
            - BranchSide:      'lib/vlog.c:861,9'
              BranchSideFuncs:
                - ovsthread_once_done
                - time_wall_msec
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - vlog
                - xastrftime_msec
                - free
                - vlog
        - Branch String:   'lib/vlog.c:855,21'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:855,24'
              BranchSideFuncs:
                - syslog_libc_create
                - ovsthread_once_done
                - time_wall_msec
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - vlog
                - xastrftime_msec
                - free
                - vlog
                - vlog_set_syslog_method
            - BranchSide:      'lib/vlog.c:858,29'
              BranchSideFuncs:
                - syslog_libc_create
                - ovsthread_once_done
                - time_wall_msec
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - vlog
                - xastrftime_msec
                - free
                - vlog
        - Branch String:   'lib/vlog.c:855,17'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:856,40'
              BranchSideFuncs:
                - vlog_set_syslog_method
                - ovsthread_once_done
                - time_wall_msec
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - vlog
                - xastrftime_msec
                - free
                - vlog
            - BranchSide:      'lib/vlog.c:858,29'
              BranchSideFuncs:
                - syslog_libc_create
                - ovsthread_once_done
                - time_wall_msec
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - vlog
                - xastrftime_msec
                - free
                - vlog
        - Branch String:   'lib/vlog.c:861,46'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:861,57'
              BranchSideFuncs:
                - ovsthread_once_done
                - time_wall_msec
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - vlog
                - xastrftime_msec
                - free
                - vlog
            - BranchSide:      'lib/vlog.c:861,9'
              BranchSideFuncs:
                - ovsthread_once_done
                - time_wall_msec
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - vlog
                - xastrftime_msec
                - free
                - vlog
        - Branch String:   'lib/vlog.c:868,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:869,64'
              BranchSideFuncs:
                - xastrftime_msec
                - free
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - vlog
                - vlog
            - BranchSide:      'lib/vlog.c:874,9'
              BranchSideFuncs:
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - vlog
        - Branch String:   'lib/vlog.c:870,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:870,13'
              BranchSideFuncs:
                - vlog
                - free
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - vlog
            - BranchSide:      'lib/vlog.c:871,18'
              BranchSideFuncs:
                - free
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - unixctl_command_register
                - ovs_rwlock_rdlock_at
                - ovs_rwlock_unlock
                - vlog
        - Branch String:   'lib/vlog.c:896,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:897,13'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/vlog.c:900,5'
              BranchSideFuncs: []
        - Branch String:   'lib/vlog.c:897,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:897,13'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/vlog.c:899,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/vlog.c:844,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/vlog.c:854,25'
          Dst:             getenv
        - Src:             'lib/vlog.c:856,17'
          Dst:             vlog_set_syslog_method
        - Src:             'lib/vlog.c:858,29'
          Dst:             syslog_libc_create
        - Src:             'lib/vlog.c:862,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/vlog.c:867,15'
          Dst:             time_wall_msec
        - Src:             'lib/vlog.c:869,23'
          Dst:             xastrftime_msec
        - Src:             'lib/vlog.c:870,13'
          Dst:             vlog
        - Src:             'lib/vlog.c:874,9'
          Dst:             unixctl_command_register
        - Src:             'lib/vlog.c:874,9'
          Dst:             vlog_unixctl_set
        - Src:             'lib/vlog.c:877,9'
          Dst:             unixctl_command_register
        - Src:             'lib/vlog.c:877,9'
          Dst:             vlog_unixctl_list
        - Src:             'lib/vlog.c:879,9'
          Dst:             unixctl_command_register
        - Src:             'lib/vlog.c:879,9'
          Dst:             vlog_unixctl_list_pattern
        - Src:             'lib/vlog.c:881,9'
          Dst:             unixctl_command_register
        - Src:             'lib/vlog.c:881,9'
          Dst:             vlog_enable_rate_limit
        - Src:             'lib/vlog.c:883,9'
          Dst:             unixctl_command_register
        - Src:             'lib/vlog.c:883,9'
          Dst:             vlog_disable_rate_limit
        - Src:             'lib/vlog.c:885,9'
          Dst:             unixctl_command_register
        - Src:             'lib/vlog.c:885,9'
          Dst:             vlog_unixctl_reopen
        - Src:             'lib/vlog.c:887,9'
          Dst:             unixctl_command_register
        - Src:             'lib/vlog.c:887,9'
          Dst:             vlog_unixctl_close
        - Src:             'lib/vlog.c:889,9'
          Dst:             unixctl_command_register
        - Src:             'lib/vlog.c:889,9'
          Dst:             vlog_inject_info_log
        - Src:             'lib/vlog.c:892,9'
          Dst:             ovs_rwlock_rdlock_at
        - Src:             'lib/vlog.c:894,9'
          Dst:             ovs_rwlock_unlock
        - Src:             'lib/vlog.c:897,13'
          Dst:             vlog
    - functionName:    msg_num_get
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - msg_num_get_unsafe
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/vlog.c:100,1'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:100,1'
              BranchSideFuncs:
                - msg_num_get_unsafe
            - BranchSide:      'lib/vlog.c:100,1'
              BranchSideFuncs:
                - msg_num_get_unsafe
      Callsites:
        - Src:             'lib/vlog.c:100,1'
          Dst:             msg_num_get_unsafe
    - functionName:    format_log_message
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1025
      functionLinenumberEnd: 1137
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - module
        - level
        - pattern
        - message
        - args_
        - s
      BBCount:         54
      ICount:          456
      EdgeCount:       65
      CyclomaticComplexity: 13
      functionsReached:
        - __ctype_b_loc
        - ds_clear
        - ds_put_char
        - ds_put_char_multiple
        - ds_put_cstr
        - ds_put_format
        - ds_put_format_valist
        - ds_put_strftime_msec
        - ds_put_uninit
        - fetch_braces
        - get_subprogram_name
        - gethostname
        - getpid
        - msg_num_get_unsafe
        - time_boot_msec
        - time_msec
        - time_wall_msec
        - vlog_get_level_name
        - vlog_get_module_name
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/vlog.c:1032,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1034,30'
              BranchSideFuncs:
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_char_multiple
                - ds_put_uninit
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
            - BranchSide:      'lib/vlog.c:1137,1'
              BranchSideFuncs: []
        - Branch String:   'lib/vlog.c:1038,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1039,25'
              BranchSideFuncs:
                - ds_put_char.2494
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_char_multiple
                - ds_put_uninit
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
            - BranchSide:      'lib/vlog.c:1043,10'
              BranchSideFuncs:
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
        - Branch String:   'lib/vlog.c:1044,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1045,21'
              BranchSideFuncs:
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
            - BranchSide:      'lib/vlog.c:1048,14'
              BranchSideFuncs:
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
        - Branch String:   'lib/vlog.c:1048,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1049,17'
              BranchSideFuncs:
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
            - BranchSide:      'lib/vlog.c:1052,15'
              BranchSideFuncs:
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
        - Branch String:   'lib/vlog.c:1053,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1054,22'
              BranchSideFuncs:
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
            - BranchSide:      'lib/vlog.c:1058,18'
              BranchSideFuncs:
                - get_subprogram_name
                - __ctype_b_loc
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
        - Branch String:   'lib/vlog.c:1059,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1061,25'
              BranchSideFuncs:
                - ds_put_cstr
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
            - BranchSide:      'lib/vlog.c:1064,13'
              BranchSideFuncs:
                - ds_put_format
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
            - BranchSide:      'lib/vlog.c:1070,30'
              BranchSideFuncs:
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
            - BranchSide:      'lib/vlog.c:1074,30'
              BranchSideFuncs:
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
            - BranchSide:      'lib/vlog.c:1078,30'
              BranchSideFuncs:
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
            - BranchSide:      'lib/vlog.c:1082,25'
              BranchSideFuncs:
                - gethostname
                - ds_put_cstr
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
            - BranchSide:      'lib/vlog.c:1088,22'
              BranchSideFuncs:
                - ds_put_format_valist
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
            - BranchSide:      'lib/vlog.c:1097,27'
              BranchSideFuncs:
                - msg_num_get_unsafe
                - ds_put_format
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
            - BranchSide:      'lib/vlog.c:1100,25'
              BranchSideFuncs:
                - ds_put_char.2494
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
            - BranchSide:      'lib/vlog.c:1103,25'
              BranchSideFuncs:
                - vlog_get_level_name
                - ds_put_cstr
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
            - BranchSide:      'lib/vlog.c:1106,27'
              BranchSideFuncs:
                - getpid
                - ds_put_format
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
            - BranchSide:      'lib/vlog.c:1109,27'
              BranchSideFuncs:
                - time_msec
                - time_boot_msec
                - ds_put_format
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
            - BranchSide:      'lib/vlog.c:1112,31'
              BranchSideFuncs:
                - get_subprogram_name
                - ds_put_cstr
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
            - BranchSide:      'lib/vlog.c:1116,31'
              BranchSideFuncs:
                - get_subprogram_name
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
                - ds_put_format
            - BranchSide:      'lib/vlog.c:1122,25'
              BranchSideFuncs:
                - ds_put_char.2494
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
        - Branch String:   'lib/vlog.c:1066,24'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1066,35'
              BranchSideFuncs:
                - ds_put_format
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
            - BranchSide:      'lib/vlog.c:1066,22'
              BranchSideFuncs:
                - ds_put_format
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
        - Branch String:   'lib/vlog.c:1092,39'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1092,42'
              BranchSideFuncs:
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
            - BranchSide:      'lib/vlog.c:1092,13'
              BranchSideFuncs:
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
        - Branch String:   'lib/vlog.c:1092,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1093,17'
              BranchSideFuncs:
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
            - BranchSide:      'lib/vlog.c:1095,13'
              BranchSideFuncs:
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
        - Branch String:   'lib/vlog.c:1113,28'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1113,49'
              BranchSideFuncs:
                - ds_put_cstr
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
            - BranchSide:      'lib/vlog.c:1113,13'
              BranchSideFuncs:
                - ds_put_cstr
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
        - Branch String:   'lib/vlog.c:1117,17'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1118,31'
              BranchSideFuncs:
                - ds_put_format
                - __ctype_b_loc
                - get_subprogram_name
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
            - BranchSide:      'lib/vlog.c:1120,13'
              BranchSideFuncs:
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_char_multiple
                - ds_put_uninit
        - Branch String:   'lib/vlog.c:1126,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1032,5'
              BranchSideFuncs:
                - ds_put_char_multiple
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_uninit
            - BranchSide:      'lib/vlog.c:1127,28'
              BranchSideFuncs:
                - ds_put_char_multiple
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
                - ds_put_uninit
        - Branch String:   'lib/vlog.c:1128,17'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1129,31'
              BranchSideFuncs:
                - ds_put_uninit
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_char_multiple
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
            - BranchSide:      'lib/vlog.c:1133,38'
              BranchSideFuncs:
                - ds_put_char_multiple
                - __ctype_b_loc
                - get_subprogram_name
                - ds_put_uninit
                - ds_put_format
                - get_subprogram_name
                - ds_put_cstr
                - time_msec
                - time_boot_msec
                - ds_put_format
                - getpid
                - ds_put_format
                - vlog_get_level_name
                - ds_put_cstr
                - ds_put_char.2494
                - msg_num_get_unsafe
                - ds_put_format
                - ds_put_format_valist
                - gethostname
                - ds_put_cstr
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - time_wall_msec
                - ds_put_strftime_msec
                - fetch_braces
                - vlog_get_module_name
                - ds_put_cstr
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_put_char.2494
      Callsites:
        - Src:             'lib/vlog.c:1031,5'
          Dst:             ds_clear
        - Src:             'lib/vlog.c:1039,13'
          Dst:             ds_put_char
        - Src:             'lib/vlog.c:1053,16'
          Dst:             __ctype_b_loc
        - Src:             'lib/vlog.c:1061,13'
          Dst:             ds_put_cstr
        - Src:             'lib/vlog.c:1067,13'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:1070,17'
          Dst:             fetch_braces
        - Src:             'lib/vlog.c:1071,28'
          Dst:             vlog_get_module_name
        - Src:             'lib/vlog.c:1071,13'
          Dst:             ds_put_cstr
        - Src:             'lib/vlog.c:1074,17'
          Dst:             fetch_braces
        - Src:             'lib/vlog.c:1075,42'
          Dst:             time_wall_msec
        - Src:             'lib/vlog.c:1075,13'
          Dst:             ds_put_strftime_msec
        - Src:             'lib/vlog.c:1078,17'
          Dst:             fetch_braces
        - Src:             'lib/vlog.c:1079,42'
          Dst:             time_wall_msec
        - Src:             'lib/vlog.c:1079,13'
          Dst:             ds_put_strftime_msec
        - Src:             'lib/vlog.c:1082,13'
          Dst:             gethostname
        - Src:             'lib/vlog.c:1084,13'
          Dst:             ds_put_cstr
        - Src:             'lib/vlog.c:1090,13'
          Dst:             ds_put_format_valist
        - Src:             'lib/vlog.c:1097,37'
          Dst:             msg_num_get_unsafe
        - Src:             'lib/vlog.c:1097,13'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:1100,13'
          Dst:             ds_put_char
        - Src:             'lib/vlog.c:1103,28'
          Dst:             vlog_get_level_name
        - Src:             'lib/vlog.c:1103,13'
          Dst:             ds_put_cstr
        - Src:             'lib/vlog.c:1106,48'
          Dst:             getpid
        - Src:             'lib/vlog.c:1106,13'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:1109,38'
          Dst:             time_msec
        - Src:             'lib/vlog.c:1109,52'
          Dst:             time_boot_msec
        - Src:             'lib/vlog.c:1109,13'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:1112,31'
          Dst:             get_subprogram_name
        - Src:             'lib/vlog.c:1113,13'
          Dst:             ds_put_cstr
        - Src:             'lib/vlog.c:1116,31'
          Dst:             get_subprogram_name
        - Src:             'lib/vlog.c:1118,17'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:1122,13'
          Dst:             ds_put_char
        - Src:             'lib/vlog.c:1129,17'
          Dst:             ds_put_uninit
        - Src:             'lib/vlog.c:1133,17'
          Dst:             ds_put_char_multiple
    - functionName:    ds_put_char
      functionSourceFile: '/src/openvswitch/./include/openvswitch/dynamic-string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ds
        - c
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_put_char__
      functionUses:    6
      BranchProfiles:
        - Branch String:   './include/openvswitch/dynamic-string.h:95,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/dynamic-string.h:96,36'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/dynamic-string.h:99,23'
              BranchSideFuncs:
                - ds_put_char__
      Callsites:
        - Src:             './include/openvswitch/dynamic-string.h:99,9'
          Dst:             ds_put_char__
    - functionName:    fputs
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    send_to_syslog_fd
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1143
      functionLinenumberEnd: 1151
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - length
      BBCount:         12
      ICount:          72
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - write
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/vlog.c:1145,23'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1145,12'
              BranchSideFuncs:
                - write
                - __errno_location
            - BranchSide:      'lib/vlog.c:1145,12'
              BranchSideFuncs:
                - write
                - __errno_location
        - Branch String:   'lib/vlog.c:1147,46'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1147,49'
              BranchSideFuncs:
                - __errno_location
                - write
            - BranchSide:      'lib/vlog.c:1147,5'
              BranchSideFuncs:
                - write
                - __errno_location
        - Branch String:   'lib/vlog.c:1147,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:1148,21'
              BranchSideFuncs:
                - write
                - __errno_location
            - BranchSide:      'lib/vlog.c:1151,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/vlog.c:1147,12'
          Dst:             write
        - Src:             'lib/vlog.c:1147,49'
          Dst:             __errno_location
    - functionName:    vlog_get_module_name
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - module
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    gethostname
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vlog_get_level_name
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - level
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - once
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/thread.h:161,12'
          Branch Sides:
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs:
                - ovsthread_once_start__
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    vlog_set_syslog_method
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 621
      functionLinenumberEnd: 637
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - method
      BBCount:         17
      ICount:          76
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - ovs_fatal
        - strcmp
        - strncmp
        - syslog_direct_create
        - syslog_libc_create
        - syslog_null_create
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/vlog.c:622,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:625,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/vlog.c:628,17'
              BranchSideFuncs:
                - strcmp
                - syslog_null_create
                - strcmp
                - syslog_libc_create
                - strncmp
                - syslog_direct_create
                - strncmp
                - ovs_fatal
        - Branch String:   'lib/vlog.c:628,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:629,21'
              BranchSideFuncs:
                - strcmp
                - syslog_libc_create
                - strncmp
                - syslog_direct_create
                - strncmp
                - ovs_fatal
            - BranchSide:      'lib/vlog.c:630,24'
              BranchSideFuncs:
                - strcmp
                - syslog_libc_create
                - strncmp
                - syslog_direct_create
                - strncmp
                - ovs_fatal
        - Branch String:   'lib/vlog.c:630,16'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:631,21'
              BranchSideFuncs:
                - strncmp
                - syslog_direct_create
                - strncmp
                - ovs_fatal
            - BranchSide:      'lib/vlog.c:632,25'
              BranchSideFuncs:
                - strncmp
                - syslog_direct_create
                - strncmp
                - ovs_fatal
        - Branch String:   'lib/vlog.c:632,44'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:632,56'
              BranchSideFuncs:
                - strncmp
                - syslog_direct_create
                - ovs_fatal
            - BranchSide:      'lib/vlog.c:633,42'
              BranchSideFuncs:
                - syslog_direct_create
        - Branch String:   'lib/vlog.c:632,16'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:633,42'
              BranchSideFuncs:
                - ovs_fatal
            - BranchSide:      'lib/vlog.c:635,56'
              BranchSideFuncs:
                - ovs_fatal
      Callsites:
        - Src:             'lib/vlog.c:628,10'
          Dst:             strcmp
        - Src:             'lib/vlog.c:629,21'
          Dst:             syslog_null_create
        - Src:             'lib/vlog.c:630,17'
          Dst:             strcmp
        - Src:             'lib/vlog.c:631,21'
          Dst:             syslog_libc_create
        - Src:             'lib/vlog.c:632,17'
          Dst:             strncmp
        - Src:             'lib/vlog.c:632,48'
          Dst:             strncmp
        - Src:             'lib/vlog.c:633,21'
          Dst:             syslog_direct_create
        - Src:             'lib/vlog.c:635,9'
          Dst:             ovs_fatal
    - functionName:    vlog
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1246
      functionLinenumberEnd: 1252
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - module
        - level
        - message
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_valist
      functionUses:    166
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:1250,5'
          Dst:             vlog_valist
    - functionName:    vlog_unixctl_set
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 696
      functionLinenumberEnd: 712
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
        - argc
        - argv
        - aux
      BBCount:         13
      ICount:          80
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - unixctl_command_reply
        - unixctl_command_reply_error
        - vlog_set_levels
        - vlog_set_levels_from_string
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/vlog.c:700,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:701,9'
              BranchSideFuncs:
                - vlog_set_levels
                - unixctl_command_reply
                - vlog_set_levels_from_string
                - unixctl_command_reply_error
                - free
            - BranchSide:      'lib/vlog.c:703,12'
              BranchSideFuncs:
                - unixctl_command_reply
                - vlog_set_levels_from_string
                - unixctl_command_reply_error
                - free
        - Branch String:   'lib/vlog.c:703,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:704,49'
              BranchSideFuncs:
                - vlog_set_levels_from_string
                - unixctl_command_reply
                - unixctl_command_reply_error
                - free
            - BranchSide:      'lib/vlog.c:711,27'
              BranchSideFuncs:
                - unixctl_command_reply
        - Branch String:   'lib/vlog.c:705,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:706,41'
              BranchSideFuncs:
                - unixctl_command_reply_error
                - free
            - BranchSide:      'lib/vlog.c:710,5'
              BranchSideFuncs:
                - unixctl_command_reply
                - vlog_set_levels_from_string
                - unixctl_command_reply_error
                - free
      Callsites:
        - Src:             'lib/vlog.c:701,9'
          Dst:             vlog_set_levels
        - Src:             'lib/vlog.c:704,21'
          Dst:             vlog_set_levels_from_string
        - Src:             'lib/vlog.c:706,13'
          Dst:             unixctl_command_reply_error
        - Src:             'lib/vlog.c:711,5'
          Dst:             unixctl_command_reply
    - functionName:    vlog_unixctl_list
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 717
      functionLinenumberEnd: 721
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
        - argc
        - argv
        - aux
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unixctl_command_reply
        - vlog_get_levels
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:718,17'
          Dst:             vlog_get_levels
        - Src:             'lib/vlog.c:719,5'
          Dst:             unixctl_command_reply
    - functionName:    vlog_unixctl_list_pattern
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 726
      functionLinenumberEnd: 732
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
        - argc
        - argv
        - aux
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unixctl_command_reply
        - vlog_get_patterns
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:729,11'
          Dst:             vlog_get_patterns
        - Src:             'lib/vlog.c:730,5'
          Dst:             unixctl_command_reply
    - functionName:    vlog_enable_rate_limit
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 818
      functionLinenumberEnd: 820
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
        - argc
        - argv
        - aux
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - set_rate_limits
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:819,5'
          Dst:             set_rate_limits
    - functionName:    vlog_disable_rate_limit
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 825
      functionLinenumberEnd: 827
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
        - argc
        - argv
        - aux
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - set_rate_limits
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:826,5'
          Dst:             set_rate_limits
    - functionName:    vlog_unixctl_reopen
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 737
      functionLinenumberEnd: 754
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
        - argc
        - argv
        - aux
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovs_strerror
        - unixctl_command_reply
        - unixctl_command_reply_error
        - vlog_reopen_log_file
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/vlog.c:744,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:745,21'
              BranchSideFuncs:
                - vlog_reopen_log_file
                - unixctl_command_reply
                - __errno_location
                - ovs_strerror
                - unixctl_command_reply_error
            - BranchSide:      'lib/vlog.c:752,37'
              BranchSideFuncs:
                - unixctl_command_reply_error
        - Branch String:   'lib/vlog.c:746,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:747,41'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - unixctl_command_reply_error
            - BranchSide:      'lib/vlog.c:749,35'
              BranchSideFuncs:
                - unixctl_command_reply
      Callsites:
        - Src:             'lib/vlog.c:740,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:742,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:745,21'
          Dst:             vlog_reopen_log_file
        - Src:             'lib/vlog.c:747,60'
          Dst:             __errno_location
        - Src:             'lib/vlog.c:747,47'
          Dst:             ovs_strerror
        - Src:             'lib/vlog.c:747,13'
          Dst:             unixctl_command_reply_error
        - Src:             'lib/vlog.c:749,13'
          Dst:             unixctl_command_reply
        - Src:             'lib/vlog.c:752,9'
          Dst:             unixctl_command_reply_error
    - functionName:    vlog_unixctl_close
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 759
      functionLinenumberEnd: 776
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
        - argc
        - argv
        - aux
      BBCount:         13
      ICount:          82
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - async_append_destroy
        - close
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - unixctl_command_reply
        - update_min_level
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/vlog.c:761,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:761,9'
              BranchSideFuncs:
                - close
                - async_append_destroy
                - ovs_mutex_unlock
                - unixctl_command_reply
                - update_min_level
            - BranchSide:      'lib/vlog.c:762,15'
              BranchSideFuncs:
                - close
                - async_append_destroy
                - ovs_mutex_unlock
                - unixctl_command_reply
                - update_min_level
        - Branch String:   'lib/vlog.c:769,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:769,9'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - unixctl_command_reply
                - update_min_level
            - BranchSide:      'lib/vlog.c:769,9'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - unixctl_command_reply
                - update_min_level
        - Branch String:   'lib/vlog.c:769,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:770,30'
              BranchSideFuncs:
                - update_min_level
                - ovs_mutex_unlock
                - unixctl_command_reply
            - BranchSide:      'lib/vlog.c:772,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - unixctl_command_reply
      Callsites:
        - Src:             'lib/vlog.c:760,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:762,9'
          Dst:             close
        - Src:             'lib/vlog.c:765,9'
          Dst:             async_append_destroy
        - Src:             'lib/vlog.c:770,13'
          Dst:             update_min_level
        - Src:             'lib/vlog.c:773,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:775,5'
          Dst:             unixctl_command_reply
    - functionName:    vlog_inject_info_log
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 832
      functionLinenumberEnd: 835
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
        - argc
        - argv
        - aux
      BBCount:         8
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - unixctl_command_reply
        - vlog
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/vlog.c:833,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:833,5'
              BranchSideFuncs:
                - vlog
                - unixctl_command_reply
            - BranchSide:      'lib/vlog.c:833,5'
              BranchSideFuncs:
                - unixctl_command_reply
      Callsites:
        - Src:             'lib/vlog.c:833,5'
          Dst:             vlog
        - Src:             'lib/vlog.c:834,5'
          Dst:             unixctl_command_reply
    - functionName:    vlog_reopen_log_file
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 480
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - nullable_xstrdup
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - vlog_set_log_file
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/vlog.c:469,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:467,11'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - nullable_xstrdup
                - ovs_mutex_unlock
                - vlog_set_log_file
                - free
            - BranchSide:      'lib/vlog.c:469,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - nullable_xstrdup
                - ovs_mutex_unlock
                - vlog_set_log_file
                - free
        - Branch String:   'lib/vlog.c:473,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:474,39'
              BranchSideFuncs:
                - vlog_set_log_file
                - free
            - BranchSide:      'lib/vlog.c:478,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/vlog.c:469,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:470,10'
          Dst:             nullable_xstrdup
        - Src:             'lib/vlog.c:471,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:474,21'
          Dst:             vlog_set_log_file
    - functionName:    vlog_set_log_file
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 454
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - file_name
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_logdir
        - vlog_set_log_file__
        - xasprintf
        - xstrdup
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/vlog.c:456,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:457,19'
              BranchSideFuncs:
                - xstrdup
                - vlog_set_log_file__
            - BranchSide:      'lib/vlog.c:458,34'
              BranchSideFuncs:
                - ovs_logdir
                - xasprintf
                - vlog_set_log_file__
      Callsites:
        - Src:             'lib/vlog.c:457,11'
          Dst:             xstrdup
        - Src:             'lib/vlog.c:458,34'
          Dst:             ovs_logdir
        - Src:             'lib/vlog.c:458,11'
          Dst:             xasprintf
        - Src:             'lib/vlog.c:455,12'
          Dst:             vlog_set_log_file__
    - functionName:    vlog_set_log_file__
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - new_log_file_name
      BBCount:         62
      ICount:          324
      EdgeCount:       81
      CyclomaticComplexity: 21
      functionsReached:
        - __errno_location
        - async_append_create
        - async_append_destroy
        - close
        - fstat
        - nullable_xstrdup
        - open
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovs_strerror
        - update_min_level
        - vlog
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/vlog.c:374,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:375,27'
              BranchSideFuncs:
                - open
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
                - vlog
                - free
                - close
                - fstat
                - fstat
                - free
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/vlog.c:384,20'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
                - vlog
                - free
                - close
                - fstat
                - fstat
        - Branch String:   'lib/vlog.c:377,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:378,13'
              BranchSideFuncs:
                - free
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/vlog.c:383,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
                - vlog
                - free
                - close
                - fstat
                - fstat
        - Branch String:   'lib/vlog.c:378,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:378,13'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
                - free
                - __errno_location
            - BranchSide:      'lib/vlog.c:380,18'
              BranchSideFuncs:
                - free
                - __errno_location
        - Branch String:   'lib/vlog.c:390,19'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:390,22'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
                - vlog
                - free
                - close
                - fstat
                - fstat
            - BranchSide:      'lib/vlog.c:391,19'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
                - vlog
                - free
                - close
                - fstat
                - fstat
        - Branch String:   'lib/vlog.c:390,38'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:389,15'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
                - vlog
                - free
                - close
            - BranchSide:      'lib/vlog.c:391,19'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
                - vlog
                - free
                - close
                - fstat
                - fstat
        - Branch String:   'lib/vlog.c:392,19'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:390,38'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
                - vlog
                - free
                - close
                - fstat
                - fstat
            - BranchSide:      'lib/vlog.c:392,22'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
                - vlog
                - free
                - close
                - fstat
                - fstat
        - Branch String:   'lib/vlog.c:393,19'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:390,38'
              BranchSideFuncs:
                - fstat
                - fstat
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
                - vlog
                - free
                - close
            - BranchSide:      'lib/vlog.c:393,29'
              BranchSideFuncs:
                - fstat
                - fstat
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
                - vlog
                - free
                - close
        - Branch String:   'lib/vlog.c:394,19'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:390,38'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
                - vlog
                - free
                - close
            - BranchSide:      'lib/vlog.c:394,29'
              BranchSideFuncs:
                - fstat
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
                - vlog
                - free
                - close
        - Branch String:   'lib/vlog.c:395,19'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:390,38'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
                - vlog
                - free
                - close
            - BranchSide:      'lib/vlog.c:395,31'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
                - vlog
                - free
                - close
        - Branch String:   'lib/vlog.c:396,19'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:390,38'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
                - vlog
                - free
                - close
            - BranchSide:      'lib/vlog.c:396,31'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
                - vlog
                - free
                - close
        - Branch String:   'lib/vlog.c:398,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:399,13'
              BranchSideFuncs:
                - free
                - close
            - BranchSide:      'lib/vlog.c:407,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
                - vlog
        - Branch String:   'lib/vlog.c:399,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:400,19'
              BranchSideFuncs:
                - close
                - free
            - BranchSide:      'lib/vlog.c:402,14'
              BranchSideFuncs:
                - free
        - Branch String:   'lib/vlog.c:410,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:411,9'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
                - vlog
            - BranchSide:      'lib/vlog.c:415,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
        - Branch String:   'lib/vlog.c:411,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:411,9'
              BranchSideFuncs:
                - vlog
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
            - BranchSide:      'lib/vlog.c:412,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - async_append_destroy
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
                - close
        - Branch String:   'lib/vlog.c:417,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:418,15'
              BranchSideFuncs:
                - close
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
            - BranchSide:      'lib/vlog.c:420,10'
              BranchSideFuncs:
                - free
                - nullable_xstrdup
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
                - async_append_create
        - Branch String:   'lib/vlog.c:425,18'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:425,50'
              BranchSideFuncs:
                - async_append_create
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
            - BranchSide:      'lib/vlog.c:425,16'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
        - Branch String:   'lib/vlog.c:427,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:427,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
            - BranchSide:      'lib/vlog.c:427,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - free
                - vlog
                - update_min_level
        - Branch String:   'lib/vlog.c:427,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:428,26'
              BranchSideFuncs:
                - update_min_level
                - ovs_mutex_unlock
                - free
                - vlog
            - BranchSide:      'lib/vlog.c:430,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - free
                - vlog
        - Branch String:   'lib/vlog.c:433,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:433,5'
              BranchSideFuncs:
                - vlog
                - free
            - BranchSide:      'lib/vlog.c:434,10'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'lib/vlog.c:375,22'
          Dst:             open
        - Src:             'lib/vlog.c:378,13'
          Dst:             __errno_location
        - Src:             'lib/vlog.c:378,13'
          Dst:             ovs_strerror
        - Src:             'lib/vlog.c:378,13'
          Dst:             vlog
        - Src:             'lib/vlog.c:381,20'
          Dst:             __errno_location
        - Src:             'lib/vlog.c:388,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:393,23'
          Dst:             fstat
        - Src:             'lib/vlog.c:394,23'
          Dst:             fstat
        - Src:             'lib/vlog.c:397,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:400,13'
          Dst:             close
        - Src:             'lib/vlog.c:407,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:409,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:411,9'
          Dst:             vlog
        - Src:             'lib/vlog.c:415,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:416,5'
          Dst:             async_append_destroy
        - Src:             'lib/vlog.c:418,9'
          Dst:             close
        - Src:             'lib/vlog.c:423,21'
          Dst:             nullable_xstrdup
        - Src:             'lib/vlog.c:425,30'
          Dst:             async_append_create
        - Src:             'lib/vlog.c:428,9'
          Dst:             update_min_level
        - Src:             'lib/vlog.c:430,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:433,5'
          Dst:             vlog
    - functionName:    vlog_get_patterns
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 975
      functionLinenumberEnd: 994
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         12
      ICount:          77
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ds_cstr
        - ds_put_format
        - ovs_rwlock_rdlock_at
        - ovs_rwlock_unlock
        - syslog_get_prefix
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/vlog.c:976,15'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:983,27'
              BranchSideFuncs:
                - ovs_rwlock_rdlock_at
                - ds_put_format
                - ds_put_format
                - ovs_rwlock_unlock
                - ds_cstr
                - ds_put_format
                - syslog_get_prefix
            - BranchSide:      'lib/vlog.c:983,27'
              BranchSideFuncs:
                - ovs_rwlock_rdlock_at
                - ds_put_format
                - ds_put_format
                - ovs_rwlock_unlock
                - ds_cstr
                - ds_put_format
                - syslog_get_prefix
        - Branch String:   'lib/vlog.c:983,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:984,47'
              BranchSideFuncs:
                - ds_put_format
                - ovs_rwlock_unlock
                - ds_cstr
                - syslog_get_prefix
            - BranchSide:      'lib/vlog.c:992,5'
              BranchSideFuncs:
                - ovs_rwlock_unlock
                - ds_cstr
        - Branch String:   'lib/vlog.c:987,39'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:987,42'
              BranchSideFuncs:
                - ds_put_format
                - ovs_rwlock_unlock
                - ds_cstr
                - syslog_get_prefix
            - BranchSide:      'lib/vlog.c:990,49'
              BranchSideFuncs:
                - ds_put_format
                - ovs_rwlock_unlock
                - ds_cstr
                - syslog_get_prefix
        - Branch String:   'lib/vlog.c:987,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:988,40'
              BranchSideFuncs:
                - syslog_get_prefix
                - ds_put_format
                - ovs_rwlock_unlock
                - ds_cstr
            - BranchSide:      'lib/vlog.c:990,49'
              BranchSideFuncs:
                - ds_put_format
                - ovs_rwlock_unlock
                - ds_cstr
                - syslog_get_prefix
      Callsites:
        - Src:             'lib/vlog.c:979,5'
          Dst:             ovs_rwlock_rdlock_at
        - Src:             'lib/vlog.c:980,5'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:981,5'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:988,22'
          Dst:             syslog_get_prefix
        - Src:             'lib/vlog.c:990,9'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:992,5'
          Dst:             ovs_rwlock_unlock
        - Src:             'lib/vlog.c:994,12'
          Dst:             ds_cstr
    - functionName:    syslog_get_prefix
      functionSourceFile: '/src/openvswitch/lib/syslog-provider.h'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - this
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vlog_get_levels
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 932
      functionLinenumberEnd: 968
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         20
      ICount:          134
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - ds_cstr
        - ds_init
        - ds_put_char
        - ds_put_cstr
        - ds_put_format
        - ds_steal_cstr
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - svec_add_nocopy
        - svec_destroy
        - svec_sort
        - vlog_get_level
        - vlog_get_level_name
        - vlog_get_module_name
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/vlog.c:933,15'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:942,5'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - svec_sort
                - svec_destroy
                - ds_cstr
                - ds_put_cstr
                - ds_init
                - vlog_get_module_name
                - vlog_get_level
                - vlog_get_level_name
                - vlog_get_level
                - vlog_get_level_name
                - vlog_get_level
                - vlog_get_level_name
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_steal_cstr
                - svec_add_nocopy
            - BranchSide:      'lib/vlog.c:942,5'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - svec_sort
                - svec_destroy
                - ds_cstr
                - ds_put_cstr
                - ds_init
                - vlog_get_module_name
                - vlog_get_level
                - vlog_get_level_name
                - vlog_get_level
                - vlog_get_level_name
                - vlog_get_level
                - vlog_get_level_name
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_steal_cstr
                - svec_add_nocopy
        - Branch String:   'lib/vlog.c:942,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:942,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - svec_sort
                - svec_destroy
                - ds_cstr
                - ds_put_cstr
                - ds_init
                - vlog_get_module_name
                - vlog_get_level
                - vlog_get_level_name
                - vlog_get_level
                - vlog_get_level_name
                - vlog_get_level
                - vlog_get_level_name
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_steal_cstr
                - svec_add_nocopy
            - BranchSide:      'lib/vlog.c:942,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - svec_sort
                - svec_destroy
                - ds_cstr
                - ds_put_cstr
                - ds_init
                - vlog_get_module_name
                - vlog_get_level
                - vlog_get_level_name
                - vlog_get_level
                - vlog_get_level_name
                - vlog_get_level
                - vlog_get_level_name
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_steal_cstr
                - svec_add_nocopy
        - Branch String:   'lib/vlog.c:942,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:945,9'
              BranchSideFuncs:
                - ds_init
                - vlog_get_module_name
                - vlog_get_level
                - vlog_get_level_name
                - vlog_get_level
                - vlog_get_level_name
                - vlog_get_level
                - vlog_get_level_name
                - ds_put_format
                - ds_put_cstr
                - ds_put_char.2494
                - ds_steal_cstr
                - svec_add_nocopy
                - ovs_mutex_unlock
                - svec_sort
                - svec_destroy
                - ds_cstr
                - ds_put_cstr
            - BranchSide:      'lib/vlog.c:958,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - svec_sort
                - svec_destroy
                - ds_cstr
                - ds_put_cstr
        - Branch String:   'lib/vlog.c:951,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:952,13'
              BranchSideFuncs:
                - ds_put_char.2494
                - ds_steal_cstr
                - svec_add_nocopy
                - ovs_mutex_unlock
                - svec_sort
                - svec_destroy
                - ds_cstr
                - ds_put_cstr
                - ds_init
                - vlog_get_module_name
                - vlog_get_level
                - vlog_get_level_name
                - vlog_get_level
                - vlog_get_level_name
                - vlog_get_level
                - vlog_get_level_name
                - ds_put_format
                - ds_put_cstr
            - BranchSide:      'lib/vlog.c:954,9'
              BranchSideFuncs:
                - ds_put_char.2494
                - ds_steal_cstr
                - svec_add_nocopy
                - ovs_mutex_unlock
                - svec_sort
                - svec_destroy
                - ds_cstr
                - ds_put_cstr
                - ds_init
                - vlog_get_module_name
                - vlog_get_level
                - vlog_get_level_name
                - vlog_get_level
                - vlog_get_level_name
                - vlog_get_level
                - vlog_get_level_name
                - ds_put_format
                - ds_put_cstr
        - Branch String:   'lib/vlog.c:963,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:963,5'
              BranchSideFuncs:
                - svec_destroy
                - ds_cstr
                - ds_put_cstr
            - BranchSide:      'lib/vlog.c:963,5'
              BranchSideFuncs:
                - svec_destroy
                - ds_cstr
                - ds_put_cstr
        - Branch String:   'lib/vlog.c:963,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:964,25'
              BranchSideFuncs:
                - ds_put_cstr
                - svec_destroy
                - ds_cstr
            - BranchSide:      'lib/vlog.c:966,5'
              BranchSideFuncs:
                - svec_destroy
                - ds_cstr
      Callsites:
        - Src:             'lib/vlog.c:938,5'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:939,5'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:941,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:945,9'
          Dst:             ds_init
        - Src:             'lib/vlog.c:947,23'
          Dst:             vlog_get_module_name
        - Src:             'lib/vlog.c:948,43'
          Dst:             vlog_get_level
        - Src:             'lib/vlog.c:948,23'
          Dst:             vlog_get_level_name
        - Src:             'lib/vlog.c:949,43'
          Dst:             vlog_get_level
        - Src:             'lib/vlog.c:949,23'
          Dst:             vlog_get_level_name
        - Src:             'lib/vlog.c:950,43'
          Dst:             vlog_get_level
        - Src:             'lib/vlog.c:950,23'
          Dst:             vlog_get_level_name
        - Src:             'lib/vlog.c:946,9'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:952,13'
          Dst:             ds_put_cstr
        - Src:             'lib/vlog.c:954,9'
          Dst:             ds_put_char
        - Src:             'lib/vlog.c:956,33'
          Dst:             ds_steal_cstr
        - Src:             'lib/vlog.c:956,9'
          Dst:             svec_add_nocopy
        - Src:             'lib/vlog.c:958,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:960,5'
          Dst:             svec_sort
        - Src:             'lib/vlog.c:964,9'
          Dst:             ds_put_cstr
        - Src:             'lib/vlog.c:966,5'
          Dst:             svec_destroy
        - Src:             'lib/vlog.c:968,12'
          Dst:             ds_cstr
    - functionName:    vlog_get_level
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - module
        - destination
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vlog_set_levels
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 314
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - module
        - destination
        - level
      BBCount:         10
      ICount:          54
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - set_destination_level
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/vlog.c:306,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:307,26'
              BranchSideFuncs:
                - set_destination_level
            - BranchSide:      'lib/vlog.c:312,31'
              BranchSideFuncs:
                - set_destination_level
        - Branch String:   'lib/vlog.c:307,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:309,35'
              BranchSideFuncs:
                - set_destination_level
            - BranchSide:      'lib/vlog.c:311,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/vlog.c:309,13'
          Dst:             set_destination_level
        - Src:             'lib/vlog.c:312,9'
          Dst:             set_destination_level
    - functionName:    vlog_set_levels_from_string
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 515
      functionLinenumberEnd: 591
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s_
      BBCount:         53
      ICount:          270
      EdgeCount:       71
      CyclomaticComplexity: 20
      functionsReached:
        - strcasecmp
        - strtok_r
        - vlog_facility_exists
        - vlog_get_destination_val
        - vlog_get_level_val
        - vlog_module_from_name
        - vlog_set_levels
        - vlog_set_pattern
        - xasprintf
        - xstrdup
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/vlog.c:522,14'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:522,29'
              BranchSideFuncs:
                - strcasecmp
                - strtok_r
                - xstrdup
                - free
                - strcasecmp
                - vlog_set_pattern
                - xasprintf
                - vlog_get_destination_val
                - vlog_set_levels
                - strcasecmp
                - strtok_r
                - vlog_get_destination_val
                - vlog_get_level_val
                - vlog_module_from_name
                - xasprintf
                - vlog_module_from_name
                - xstrdup
                - vlog_get_level_val
                - xstrdup
                - vlog_get_destination_val
                - xstrdup
                - strcasecmp
                - vlog_facility_exists
                - xstrdup
            - BranchSide:      'lib/vlog.c:539,16'
              BranchSideFuncs:
                - vlog_set_levels
                - free
                - strcasecmp
                - strtok_r
                - vlog_get_destination_val
                - vlog_get_level_val
                - vlog_module_from_name
                - xasprintf
                - vlog_module_from_name
                - xstrdup
                - vlog_get_level_val
                - xstrdup
                - vlog_get_destination_val
                - xstrdup
                - strcasecmp
                - vlog_facility_exists
                - xstrdup
        - Branch String:   'lib/vlog.c:522,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:525,16'
              BranchSideFuncs:
                - vlog_set_levels
                - free
                - strcasecmp
                - strtok_r
                - vlog_get_destination_val
                - vlog_get_level_val
                - vlog_module_from_name
                - xasprintf
                - vlog_module_from_name
                - xstrdup
                - vlog_get_level_val
                - xstrdup
                - vlog_get_destination_val
                - xstrdup
                - strcasecmp
                - vlog_facility_exists
                - xstrdup
            - BranchSide:      'lib/vlog.c:539,16'
              BranchSideFuncs:
                - vlog_set_levels
                - free
                - strcasecmp
                - strtok_r
                - vlog_get_destination_val
                - vlog_get_level_val
                - vlog_module_from_name
                - xasprintf
                - vlog_module_from_name
                - xstrdup
                - vlog_get_level_val
                - xstrdup
                - vlog_get_destination_val
                - xstrdup
                - strcasecmp
                - vlog_facility_exists
                - xstrdup
        - Branch String:   'lib/vlog.c:526,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:527,19'
              BranchSideFuncs:
                - strcasecmp
                - vlog_set_pattern
                - free
                - xasprintf
                - vlog_get_destination_val
            - BranchSide:      'lib/vlog.c:531,36'
              BranchSideFuncs:
                - strcasecmp
                - vlog_set_pattern
                - free
                - xasprintf
                - vlog_get_destination_val
        - Branch String:   'lib/vlog.c:531,24'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:531,21'
              BranchSideFuncs:
                - vlog_get_destination_val
                - vlog_set_pattern
                - free
                - xasprintf
            - BranchSide:      'lib/vlog.c:533,51'
              BranchSideFuncs:
                - vlog_get_destination_val
                - vlog_set_pattern
                - free
                - xasprintf
        - Branch String:   'lib/vlog.c:534,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:535,59'
              BranchSideFuncs:
                - xasprintf
                - free
            - BranchSide:      'lib/vlog.c:538,26'
              BranchSideFuncs:
                - vlog_set_pattern
                - free
        - Branch String:   'lib/vlog.c:539,21'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:539,36'
              BranchSideFuncs:
                - strcasecmp
                - vlog_facility_exists
                - xstrdup
                - free
                - vlog_set_levels
                - strcasecmp
                - strtok_r
                - vlog_get_destination_val
                - vlog_get_level_val
                - vlog_module_from_name
                - xasprintf
                - vlog_module_from_name
                - xstrdup
                - vlog_get_level_val
                - xstrdup
                - vlog_get_destination_val
                - xstrdup
            - BranchSide:      'lib/vlog.c:548,29'
              BranchSideFuncs:
                - vlog_set_levels
                - free
                - strcasecmp
                - strtok_r
                - vlog_get_destination_val
                - vlog_get_level_val
                - vlog_module_from_name
                - xasprintf
                - vlog_module_from_name
                - xstrdup
                - vlog_get_level_val
                - xstrdup
                - vlog_get_destination_val
                - xstrdup
        - Branch String:   'lib/vlog.c:539,16'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:542,35'
              BranchSideFuncs:
                - vlog_set_levels
                - free
                - strcasecmp
                - strtok_r
                - vlog_get_destination_val
                - vlog_get_level_val
                - vlog_module_from_name
                - xasprintf
                - vlog_module_from_name
                - xstrdup
                - vlog_get_level_val
                - xstrdup
                - vlog_get_destination_val
                - xstrdup
            - BranchSide:      'lib/vlog.c:548,29'
              BranchSideFuncs:
                - vlog_set_levels
                - free
                - strcasecmp
                - strtok_r
                - vlog_get_destination_val
                - vlog_get_level_val
                - vlog_module_from_name
                - xasprintf
                - vlog_module_from_name
                - xstrdup
                - vlog_get_level_val
                - xstrdup
                - vlog_get_destination_val
                - xstrdup
        - Branch String:   'lib/vlog.c:542,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:543,19'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/vlog.c:546,9'
              BranchSideFuncs:
                - free
        - Branch String:   'lib/vlog.c:552,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:553,29'
              BranchSideFuncs:
                - strcasecmp
                - strtok_r
                - vlog_set_levels
                - free
                - vlog_get_destination_val
                - vlog_get_level_val
                - vlog_module_from_name
                - xasprintf
                - vlog_module_from_name
                - xstrdup
                - vlog_get_level_val
                - xstrdup
                - vlog_get_destination_val
                - xstrdup
            - BranchSide:      'lib/vlog.c:580,13'
              BranchSideFuncs:
                - vlog_set_levels
                - free
        - Branch String:   'lib/vlog.c:553,17'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:554,17'
              BranchSideFuncs:
                - vlog_get_destination_val
                - vlog_get_level_val
                - vlog_module_from_name
                - xasprintf
                - free
                - vlog_module_from_name
                - strtok_r
                - vlog_set_levels
                - strcasecmp
                - xstrdup
                - vlog_get_level_val
                - xstrdup
                - vlog_get_destination_val
                - xstrdup
            - BranchSide:      'lib/vlog.c:555,49'
              BranchSideFuncs:
                - vlog_get_destination_val
                - vlog_get_level_val
                - vlog_module_from_name
                - xasprintf
                - free
                - vlog_module_from_name
                - strtok_r
                - vlog_set_levels
                - strcasecmp
                - xstrdup
                - vlog_get_level_val
                - xstrdup
                - vlog_get_destination_val
                - xstrdup
        - Branch String:   'lib/vlog.c:555,24'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:556,21'
              BranchSideFuncs:
                - vlog_get_destination_val
                - strtok_r
                - vlog_set_levels
                - free
                - strcasecmp
                - vlog_get_destination_val
                - vlog_get_level_val
                - vlog_module_from_name
                - xasprintf
                - vlog_module_from_name
                - xstrdup
                - vlog_get_level_val
                - xstrdup
                - xstrdup
            - BranchSide:      'lib/vlog.c:561,43'
              BranchSideFuncs:
                - vlog_get_level_val
                - vlog_module_from_name
                - xasprintf
                - free
                - vlog_module_from_name
                - strtok_r
                - vlog_set_levels
                - strcasecmp
                - vlog_get_destination_val
                - vlog_get_destination_val
                - xstrdup
                - xstrdup
                - vlog_get_level_val
                - xstrdup
        - Branch String:   'lib/vlog.c:556,21'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:557,27'
              BranchSideFuncs:
                - xstrdup
                - free
            - BranchSide:      'lib/vlog.c:560,56'
              BranchSideFuncs:
                - vlog_get_destination_val
                - strtok_r
                - vlog_set_levels
                - free
                - strcasecmp
                - vlog_get_destination_val
                - vlog_get_level_val
                - vlog_module_from_name
                - xasprintf
                - vlog_module_from_name
                - xstrdup
                - vlog_get_level_val
                - xstrdup
                - xstrdup
        - Branch String:   'lib/vlog.c:561,24'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:562,21'
              BranchSideFuncs:
                - vlog_get_level_val
                - strtok_r
                - vlog_set_levels
                - free
                - strcasecmp
                - vlog_get_destination_val
                - vlog_get_level_val
                - vlog_module_from_name
                - xasprintf
                - vlog_module_from_name
                - xstrdup
                - vlog_get_destination_val
                - xstrdup
                - xstrdup
            - BranchSide:      'lib/vlog.c:567,46'
              BranchSideFuncs:
                - vlog_module_from_name
                - xasprintf
                - free
                - vlog_module_from_name
                - strtok_r
                - vlog_set_levels
                - strcasecmp
                - vlog_get_destination_val
                - vlog_get_level_val
                - vlog_get_level_val
                - xstrdup
                - vlog_get_destination_val
                - xstrdup
                - xstrdup
        - Branch String:   'lib/vlog.c:562,21'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:563,27'
              BranchSideFuncs:
                - xstrdup
                - free
            - BranchSide:      'lib/vlog.c:566,44'
              BranchSideFuncs:
                - vlog_get_level_val
                - strtok_r
                - vlog_set_levels
                - free
                - strcasecmp
                - vlog_get_destination_val
                - vlog_get_level_val
                - vlog_module_from_name
                - xasprintf
                - vlog_module_from_name
                - xstrdup
                - xstrdup
                - vlog_get_destination_val
                - xstrdup
        - Branch String:   'lib/vlog.c:567,24'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:568,21'
              BranchSideFuncs:
                - vlog_module_from_name
                - strtok_r
                - vlog_set_levels
                - free
                - strcasecmp
                - vlog_get_destination_val
                - vlog_get_level_val
                - vlog_module_from_name
                - xasprintf
                - vlog_get_level_val
                - xstrdup
                - vlog_get_destination_val
                - xstrdup
                - xstrdup
            - BranchSide:      'lib/vlog.c:575,33'
              BranchSideFuncs:
                - xasprintf
                - free
        - Branch String:   'lib/vlog.c:568,21'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:569,27'
              BranchSideFuncs:
                - xstrdup
                - free
            - BranchSide:      'lib/vlog.c:572,48'
              BranchSideFuncs:
                - vlog_module_from_name
                - strtok_r
                - vlog_set_levels
                - free
                - strcasecmp
                - vlog_get_destination_val
                - vlog_get_level_val
                - vlog_module_from_name
                - xasprintf
                - xstrdup
                - vlog_get_level_val
                - xstrdup
                - vlog_get_destination_val
                - xstrdup
        - Branch String:   'lib/vlog.c:580,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:581,25'
              BranchSideFuncs:
                - vlog_set_levels
                - free
            - BranchSide:      'lib/vlog.c:583,13'
              BranchSideFuncs:
                - vlog_set_levels
                - free
        - Branch String:   'lib/vlog.c:583,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:584,19'
              BranchSideFuncs:
                - vlog_set_levels
                - free
            - BranchSide:      'lib/vlog.c:586,25'
              BranchSideFuncs:
                - vlog_set_levels
                - free
      Callsites:
        - Src:             'lib/vlog.c:516,15'
          Dst:             xstrdup
        - Src:             'lib/vlog.c:521,12'
          Dst:             strtok_r
        - Src:             'lib/vlog.c:522,18'
          Dst:             strcasecmp
        - Src:             'lib/vlog.c:525,16'
          Dst:             strtok_r
        - Src:             'lib/vlog.c:527,19'
          Dst:             xstrdup
        - Src:             'lib/vlog.c:531,25'
          Dst:             strcasecmp
        - Src:             'lib/vlog.c:533,26'
          Dst:             vlog_get_destination_val
        - Src:             'lib/vlog.c:535,19'
          Dst:             xasprintf
        - Src:             'lib/vlog.c:538,9'
          Dst:             vlog_set_pattern
        - Src:             'lib/vlog.c:539,25'
          Dst:             strcasecmp
        - Src:             'lib/vlog.c:542,14'
          Dst:             vlog_facility_exists
        - Src:             'lib/vlog.c:543,19'
          Dst:             xstrdup
        - Src:             'lib/vlog.c:553,18'
          Dst:             strcasecmp
        - Src:             'lib/vlog.c:555,24'
          Dst:             vlog_get_destination_val
        - Src:             'lib/vlog.c:557,27'
          Dst:             xstrdup
        - Src:             'lib/vlog.c:560,31'
          Dst:             vlog_get_destination_val
        - Src:             'lib/vlog.c:561,24'
          Dst:             vlog_get_level_val
        - Src:             'lib/vlog.c:563,27'
          Dst:             xstrdup
        - Src:             'lib/vlog.c:566,25'
          Dst:             vlog_get_level_val
        - Src:             'lib/vlog.c:567,24'
          Dst:             vlog_module_from_name
        - Src:             'lib/vlog.c:569,27'
          Dst:             xstrdup
        - Src:             'lib/vlog.c:572,26'
          Dst:             vlog_module_from_name
        - Src:             'lib/vlog.c:574,23'
          Dst:             xasprintf
        - Src:             'lib/vlog.c:552,37'
          Dst:             strtok_r
        - Src:             'lib/vlog.c:586,9'
          Dst:             vlog_set_levels
    - functionName:    vlog_get_destination_val
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
      BBCount:         10
      ICount:          49
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcasecmp
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/vlog.c:208,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:208,5'
              BranchSideFuncs:
                - strcasecmp
            - BranchSide:      'lib/vlog.c:209,38'
              BranchSideFuncs:
                - strcasecmp
        - Branch String:   'lib/vlog.c:209,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:210,13'
              BranchSideFuncs:
                - strcasecmp
            - BranchSide:      'lib/vlog.c:212,5'
              BranchSideFuncs:
                - strcasecmp
      Callsites:
        - Src:             'lib/vlog.c:209,14'
          Dst:             strcasecmp
    - functionName:    vlog_set_pattern
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 334
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - destination
        - pattern
      BBCount:         10
      ICount:          49
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - do_set_pattern
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/vlog.c:337,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:338,26'
              BranchSideFuncs:
                - do_set_pattern
            - BranchSide:      'lib/vlog.c:343,24'
              BranchSideFuncs:
                - do_set_pattern
        - Branch String:   'lib/vlog.c:338,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:340,28'
              BranchSideFuncs:
                - do_set_pattern
            - BranchSide:      'lib/vlog.c:342,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/vlog.c:340,13'
          Dst:             do_set_pattern
        - Src:             'lib/vlog.c:343,9'
          Dst:             do_set_pattern
    - functionName:    vlog_facility_exists
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 682
      functionLinenumberEnd: 691
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - facility
        - value
      BBCount:         10
      ICount:          60
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcasecmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/vlog.c:684,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:685,41'
              BranchSideFuncs:
                - strcasecmp
            - BranchSide:      'lib/vlog.c:690,5'
              BranchSideFuncs: []
        - Branch String:   'lib/vlog.c:685,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:686,38'
              BranchSideFuncs:
                - strcasecmp
            - BranchSide:      'lib/vlog.c:689,5'
              BranchSideFuncs:
                - strcasecmp
      Callsites:
        - Src:             'lib/vlog.c:685,14'
          Dst:             strcasecmp
    - functionName:    vlog_get_level_val
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - search_name_array
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:190,12'
          Dst:             search_name_array
    - functionName:    search_name_array
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 174
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - target
        - names
        - n_names
      BBCount:         10
      ICount:          55
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcasecmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/vlog.c:168,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:168,5'
              BranchSideFuncs:
                - strcasecmp
            - BranchSide:      'lib/vlog.c:170,25'
              BranchSideFuncs:
                - strcasecmp
        - Branch String:   'lib/vlog.c:170,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:171,13'
              BranchSideFuncs:
                - strcasecmp
            - BranchSide:      'lib/vlog.c:173,5'
              BranchSideFuncs:
                - strcasecmp
      Callsites:
        - Src:             'lib/vlog.c:170,14'
          Dst:             strcasecmp
    - functionName:    do_set_pattern
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 329
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - destination
        - pattern
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_rwlock_unlock
        - ovs_rwlock_wrlock_at
        - xstrdup
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/vlog.c:322,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:323,14'
              BranchSideFuncs:
                - xstrdup
                - ovs_rwlock_unlock
            - BranchSide:      'lib/vlog.c:325,9'
              BranchSideFuncs:
                - xstrdup
                - ovs_rwlock_unlock
      Callsites:
        - Src:             'lib/vlog.c:321,5'
          Dst:             ovs_rwlock_wrlock_at
        - Src:             'lib/vlog.c:327,18'
          Dst:             xstrdup
        - Src:             'lib/vlog.c:328,5'
          Dst:             ovs_rwlock_unlock
    - functionName:    set_destination_level
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - destination
        - module
        - level
      BBCount:         13
      ICount:          86
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - update_min_level
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/vlog.c:284,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:286,9'
              BranchSideFuncs:
                - update_min_level
                - ovs_mutex_unlock
            - BranchSide:      'lib/vlog.c:291,39'
              BranchSideFuncs:
                - update_min_level
                - ovs_mutex_unlock
        - Branch String:   'lib/vlog.c:286,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:286,9'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - update_min_level
            - BranchSide:      'lib/vlog.c:286,9'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - update_min_level
        - Branch String:   'lib/vlog.c:286,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:287,39'
              BranchSideFuncs:
                - update_min_level
                - ovs_mutex_unlock
            - BranchSide:      'lib/vlog.c:290,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/vlog.c:283,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:288,13'
          Dst:             update_min_level
        - Src:             'lib/vlog.c:292,9'
          Dst:             update_min_level
        - Src:             'lib/vlog.c:294,5'
          Dst:             ovs_mutex_unlock
    - functionName:    vlog_is_enabled
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1002
      functionLinenumberEnd: 1003
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - module
        - level
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vlog_disable_async
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 921
      functionLinenumberEnd: 927
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - async_append_destroy
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/vlog.c:922,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:922,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - async_append_destroy
                - ovs_mutex_unlock
            - BranchSide:      'lib/vlog.c:922,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - async_append_destroy
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/vlog.c:922,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:924,5'
          Dst:             async_append_destroy
        - Src:             'lib/vlog.c:926,5'
          Dst:             ovs_mutex_unlock
    - functionName:    vlog_enable_async
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 910
      functionLinenumberEnd: 917
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          36
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - async_append_create
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/vlog.c:911,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:911,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - async_append_create
            - BranchSide:      'lib/vlog.c:911,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - async_append_create
        - Branch String:   'lib/vlog.c:913,21'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:913,25'
              BranchSideFuncs:
                - async_append_create
                - ovs_mutex_unlock
            - BranchSide:      'lib/vlog.c:913,21'
              BranchSideFuncs:
                - ovs_mutex_unlock
        - Branch String:   'lib/vlog.c:913,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:913,9'
              BranchSideFuncs:
                - ovs_mutex_unlock
            - BranchSide:      'lib/vlog.c:914,42'
              BranchSideFuncs:
                - async_append_create
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/vlog.c:911,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:914,22'
          Dst:             async_append_create
        - Src:             'lib/vlog.c:916,5'
          Dst:             ovs_mutex_unlock
    - functionName:    vlog_get_log_file_fd_unsafe
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 673
      functionLinenumberEnd: 674
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vlog_direct_write_to_log_file_unsafe
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 664
      functionLinenumberEnd: 668
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ignore
        - strlen
        - write
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/vlog.c:665,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:665,9'
              BranchSideFuncs:
                - strlen
                - write
                - ignore
            - BranchSide:      'lib/vlog.c:666,22'
              BranchSideFuncs:
                - strlen
                - write
                - ignore
      Callsites:
        - Src:             'lib/vlog.c:666,33'
          Dst:             strlen
        - Src:             'lib/vlog.c:666,16'
          Dst:             write
        - Src:             'lib/vlog.c:666,9'
          Dst:             ignore
    - functionName:    vlog_set_syslog_target
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 642
      functionLinenumberEnd: 653
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - target
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - close
        - inet_open_active
        - ovs_rwlock_unlock
        - ovs_rwlock_wrlock_at
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/vlog.c:648,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:648,9'
              BranchSideFuncs:
                - close
                - ovs_rwlock_unlock
            - BranchSide:      'lib/vlog.c:649,15'
              BranchSideFuncs:
                - close
                - ovs_rwlock_unlock
      Callsites:
        - Src:             'lib/vlog.c:645,5'
          Dst:             inet_open_active
        - Src:             'lib/vlog.c:647,5'
          Dst:             ovs_rwlock_wrlock_at
        - Src:             'lib/vlog.c:649,9'
          Dst:             close
        - Src:             'lib/vlog.c:652,5'
          Dst:             ovs_rwlock_unlock
    - functionName:    vlog_set_verbosity
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 608
      functionLinenumberEnd: 617
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg
      BBCount:         8
      ICount:          41
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_fatal
        - vlog_set_levels
        - vlog_set_levels_from_string
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/vlog.c:609,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:610,49'
              BranchSideFuncs:
                - vlog_set_levels_from_string
                - ovs_fatal
            - BranchSide:      'lib/vlog.c:615,9'
              BranchSideFuncs:
                - vlog_set_levels
        - Branch String:   'lib/vlog.c:611,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:612,51'
              BranchSideFuncs:
                - ovs_fatal
            - BranchSide:      'lib/vlog.c:614,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/vlog.c:610,21'
          Dst:             vlog_set_levels_from_string
        - Src:             'lib/vlog.c:612,13'
          Dst:             ovs_fatal
        - Src:             'lib/vlog.c:615,9'
          Dst:             vlog_set_levels
    - functionName:    vlog_set_levels_from_string_assert
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 597
      functionLinenumberEnd: 602
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         5
      ICount:          31
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_fatal
        - vlog_set_levels_from_string
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/vlog.c:599,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:600,28'
              BranchSideFuncs:
                - ovs_fatal
            - BranchSide:      'lib/vlog.c:602,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/vlog.c:598,19'
          Dst:             vlog_set_levels_from_string
        - Src:             'lib/vlog.c:600,9'
          Dst:             ovs_fatal
    - functionName:    vlog_change_owner_unix
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 508
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - user
        - group
      BBCount:         11
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - chown
        - ds_put_format
        - ds_steal_cstr
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovs_strerror
        - vlog_fatal
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/vlog.c:494,13'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:494,35'
              BranchSideFuncs:
                - chown
                - ovs_mutex_unlock
                - ds_steal_cstr
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - ds_put_format
            - BranchSide:      'lib/vlog.c:494,11'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - ds_steal_cstr
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - ds_put_format
        - Branch String:   'lib/vlog.c:495,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:501,23'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - ds_put_format
                - ovs_mutex_unlock
                - ds_steal_cstr
                - vlog_fatal
            - BranchSide:      'lib/vlog.c:503,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - ds_steal_cstr
                - vlog_fatal
        - Branch String:   'lib/vlog.c:505,9'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:506,9'
              BranchSideFuncs:
                - ds_steal_cstr
                - vlog_fatal
            - BranchSide:      'lib/vlog.c:508,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/vlog.c:493,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:494,29'
          Dst:             chown
        - Src:             'lib/vlog.c:501,51'
          Dst:             __errno_location
        - Src:             'lib/vlog.c:501,38'
          Dst:             ovs_strerror
        - Src:             'lib/vlog.c:500,9'
          Dst:             ds_put_format
        - Src:             'lib/vlog.c:503,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/vlog.c:506,9'
          Dst:             ds_steal_cstr
        - Src:             'lib/vlog.c:506,9'
          Dst:             vlog_fatal
    - functionName:    chown
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vlog_fatal
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1281
      functionLinenumberEnd: 1286
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - module
        - message
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_fatal_valist
      functionUses:    38
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:1286,5'
          Dst:             vlog_fatal_valist
    - functionName:    vlog_fatal_valist
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1261
      functionLinenumberEnd: 1271
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - module_
        - message
        - args
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_fatal_valist
        - vlog_valist
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:1270,5'
          Dst:             vlog_valist
        - Src:             'lib/vlog.c:1271,5'
          Dst:             ovs_fatal_valist
    - functionName:    vlog_close_log_file
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 445
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_set_log_file__
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/vlog.c:446,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:446,5'
              BranchSideFuncs:
                - vlog_set_log_file__
            - BranchSide:      'lib/vlog.c:446,5'
              BranchSideFuncs:
                - vlog_set_log_file__
      Callsites:
        - Src:             'lib/vlog.c:446,5'
          Dst:             vlog_set_log_file__
    - functionName:    vlog_get_log_file
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - nullable_xstrdup
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/vlog.c:352,5'
          Branch Sides:
            - BranchSide:      'lib/vlog.c:352,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - nullable_xstrdup
                - ovs_mutex_unlock
            - BranchSide:      'lib/vlog.c:352,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - nullable_xstrdup
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/vlog.c:352,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/vlog.c:353,16'
          Dst:             nullable_xstrdup
        - Src:             'lib/vlog.c:354,5'
          Dst:             ovs_mutex_unlock
    - functionName:    vlog_get_destination_name
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - destination
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    vlog_abort_valist
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1297
      functionLinenumberEnd: 1311
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - module_
        - message
        - args
      BBCount:         1
      ICount:          26
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - log_backtrace_at
        - ovs_abort_valist
        - vlog_valist
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:1309,5'
          Dst:             log_backtrace_at
        - Src:             'lib/vlog.c:1310,5'
          Dst:             vlog_valist
        - Src:             'lib/vlog.c:1311,5'
          Dst:             ovs_abort_valist
    - functionName:    vlog_abort
      functionSourceFile: '/src/openvswitch/lib/vlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1320
      functionLinenumberEnd: 1325
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - module
        - message
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_abort_valist
      functionUses:    46
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/vlog.c:1325,5'
          Dst:             vlog_abort_valist
    - functionName:    latch_wait_at
      functionSourceFile: '/src/openvswitch/lib/latch-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - latch
        - where
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - poll_fd_wait_at
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/latch-unix.c:94,5'
          Dst:             poll_fd_wait_at
    - functionName:    latch_is_set
      functionSourceFile: '/src/openvswitch/lib/latch-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - latch
      BBCount:         10
      ICount:          62
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - poll
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/latch-unix.c:81,25'
          Branch Sides:
            - BranchSide:      'lib/latch-unix.c:81,28'
              BranchSideFuncs:
                - __errno_location
                - poll
            - BranchSide:      'lib/latch-unix.c:81,5'
              BranchSideFuncs:
                - poll
                - __errno_location
        - Branch String:   'lib/latch-unix.c:81,5'
          Branch Sides:
            - BranchSide:      'lib/latch-unix.c:80,18'
              BranchSideFuncs:
                - poll
                - __errno_location
            - BranchSide:      'lib/latch-unix.c:83,16'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/latch-unix.c:80,18'
          Dst:             poll
        - Src:             'lib/latch-unix.c:81,28'
          Dst:             __errno_location
    - functionName:    latch_set
      functionSourceFile: '/src/openvswitch/lib/latch-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - latch
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ignore
        - write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/latch-unix.c:66,12'
          Dst:             write
        - Src:             'lib/latch-unix.c:66,5'
          Dst:             ignore
    - functionName:    latch_poll
      functionSourceFile: '/src/openvswitch/lib/latch-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - latch
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - read
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/latch-unix.c:54,5'
          Branch Sides:
            - BranchSide:      'lib/latch-unix.c:51,20'
              BranchSideFuncs:
                - read
            - BranchSide:      'lib/latch-unix.c:56,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/latch-unix.c:51,15'
          Dst:             read
    - functionName:    latch_destroy
      functionSourceFile: '/src/openvswitch/lib/latch-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - latch
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - close
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/latch-unix.c:37,5'
          Dst:             close
        - Src:             'lib/latch-unix.c:38,5'
          Dst:             close
    - functionName:    latch_init
      functionSourceFile: '/src/openvswitch/lib/latch-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - latch
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xpipe_nonblocking
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/latch-unix.c:30,5'
          Dst:             xpipe_nonblocking
    - functionName:    init_this_module_socket_util_unix
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/socket-util-unix.c:33,1'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:33,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/socket-util-unix.c:33,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/socket-util-unix.c:33,1'
          Dst:             vlog_insert_module
    - functionName:    shorten_name_via_symlink
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - short_name
        - linkname
      BBCount:         34
      ICount:          191
      EdgeCount:       44
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - abs_file_name
        - base_name
        - dir_name
        - fatal_signal_add_file_to_unlink
        - fatal_signal_unlink_file_now
        - getenv
        - random_uint32
        - snprintf
        - symlink
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/socket-util-unix.c:170,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:171,16'
              BranchSideFuncs:
                - fatal_signal_add_file_to_unlink
                - snprintf
                - free
                - free
                - fatal_signal_unlink_file_now
                - random_uint32
                - snprintf
                - symlink
                - __errno_location
            - BranchSide:      'lib/socket-util-unix.c:174,12'
              BranchSideFuncs:
                - fatal_signal_add_file_to_unlink
                - snprintf
                - free
                - free
                - fatal_signal_unlink_file_now
                - random_uint32
                - snprintf
                - symlink
                - __errno_location
        - Branch String:   'lib/socket-util-unix.c:174,5'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:177,24'
              BranchSideFuncs:
                - random_uint32
                - snprintf
                - symlink
                - fatal_signal_add_file_to_unlink
                - snprintf
                - free
                - free
                - fatal_signal_unlink_file_now
                - __errno_location
            - BranchSide:      'lib/socket-util-unix.c:187,10'
              BranchSideFuncs:
                - fatal_signal_add_file_to_unlink
                - snprintf
                - free
                - free
                - fatal_signal_unlink_file_now
        - Branch String:   'lib/socket-util-unix.c:179,26'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:179,18'
              BranchSideFuncs:
                - fatal_signal_add_file_to_unlink
                - snprintf
                - free
                - free
                - fatal_signal_unlink_file_now
                - random_uint32
                - snprintf
                - symlink
                - __errno_location
            - BranchSide:      'lib/socket-util-unix.c:179,29'
              BranchSideFuncs:
                - symlink
                - fatal_signal_add_file_to_unlink
                - snprintf
                - free
                - free
                - fatal_signal_unlink_file_now
                - random_uint32
                - snprintf
                - __errno_location
        - Branch String:   'lib/socket-util-unix.c:179,18'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:179,15'
              BranchSideFuncs:
                - fatal_signal_add_file_to_unlink
                - snprintf
                - free
                - free
                - fatal_signal_unlink_file_now
                - random_uint32
                - snprintf
                - symlink
                - __errno_location
            - BranchSide:      'lib/socket-util-unix.c:180,28'
              BranchSideFuncs:
                - symlink
                - fatal_signal_add_file_to_unlink
                - snprintf
                - free
                - free
                - fatal_signal_unlink_file_now
                - random_uint32
                - snprintf
                - __errno_location
        - Branch String:   'lib/socket-util-unix.c:180,20'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:179,18'
              BranchSideFuncs:
                - __errno_location
                - fatal_signal_add_file_to_unlink
                - snprintf
                - free
                - free
                - fatal_signal_unlink_file_now
                - random_uint32
                - snprintf
                - symlink
            - BranchSide:      'lib/socket-util-unix.c:180,45'
              BranchSideFuncs:
                - __errno_location
                - fatal_signal_add_file_to_unlink
                - snprintf
                - free
                - free
                - fatal_signal_unlink_file_now
                - random_uint32
                - snprintf
                - symlink
        - Branch String:   'lib/socket-util-unix.c:182,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:183,13'
              BranchSideFuncs:
                - fatal_signal_add_file_to_unlink
                - snprintf
                - free
                - free
                - fatal_signal_unlink_file_now
            - BranchSide:      'lib/socket-util-unix.c:185,5'
              BranchSideFuncs:
                - fatal_signal_add_file_to_unlink
                - snprintf
                - free
                - free
                - fatal_signal_unlink_file_now
                - random_uint32
                - snprintf
                - symlink
                - __errno_location
        - Branch String:   'lib/socket-util-unix.c:187,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:190,41'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'lib/socket-util-unix.c:199,9'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'lib/socket-util-unix.c:193,21'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:193,24'
              BranchSideFuncs:
                - fatal_signal_unlink_file_now
                - free
                - free
            - BranchSide:      'lib/socket-util-unix.c:194,42'
              BranchSideFuncs:
                - fatal_signal_unlink_file_now
                - free
                - free
        - Branch String:   'lib/socket-util-unix.c:193,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:194,42'
              BranchSideFuncs:
                - fatal_signal_unlink_file_now
                - free
                - free
            - BranchSide:      'lib/socket-util-unix.c:197,5'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'lib/socket-util-unix.c:199,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:199,9'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'lib/socket-util-unix.c:200,9'
              BranchSideFuncs:
                - free
                - free
      Callsites:
        - Src:             'lib/socket-util-unix.c:164,11'
          Dst:             abs_file_name
        - Src:             'lib/socket-util-unix.c:165,11'
          Dst:             dir_name
        - Src:             'lib/socket-util-unix.c:166,12'
          Dst:             base_name
        - Src:             'lib/socket-util-unix.c:169,14'
          Dst:             getenv
        - Src:             'lib/socket-util-unix.c:178,55'
          Dst:             random_uint32
        - Src:             'lib/socket-util-unix.c:177,15'
          Dst:             snprintf
        - Src:             'lib/socket-util-unix.c:180,20'
          Dst:             symlink
        - Src:             'lib/socket-util-unix.c:180,45'
          Dst:             __errno_location
        - Src:             'lib/socket-util-unix.c:190,9'
          Dst:             fatal_signal_add_file_to_unlink
        - Src:             'lib/socket-util-unix.c:192,15'
          Dst:             snprintf
        - Src:             'lib/socket-util-unix.c:194,13'
          Dst:             fatal_signal_unlink_file_now
    - functionName:    symlink
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    shorten_name_via_proc
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - short_name
        - dirfdp
      BBCount:         16
      ICount:          117
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - base_name
        - close
        - dir_name
        - open
        - ovs_strerror
        - snprintf
        - vlog_rate_limit
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/socket-util-unix.c:124,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:126,21'
              BranchSideFuncs:
                - __errno_location
                - free
                - ovs_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/socket-util-unix.c:133,10'
              BranchSideFuncs:
                - free
                - base_name
                - snprintf
                - free
                - close
        - Branch String:   'lib/socket-util-unix.c:128,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:128,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_rate_limit
                - free
            - BranchSide:      'lib/socket-util-unix.c:129,14'
              BranchSideFuncs:
                - free
        - Branch String:   'lib/socket-util-unix.c:140,18'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:140,21'
              BranchSideFuncs:
                - close
            - BranchSide:      'lib/socket-util-unix.c:144,15'
              BranchSideFuncs:
                - close
        - Branch String:   'lib/socket-util-unix.c:140,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:141,19'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util-unix.c:144,15'
              BranchSideFuncs:
                - close
      Callsites:
        - Src:             'lib/socket-util-unix.c:122,11'
          Dst:             dir_name
        - Src:             'lib/socket-util-unix.c:123,13'
          Dst:             open
        - Src:             'lib/socket-util-unix.c:126,21'
          Dst:             __errno_location
        - Src:             'lib/socket-util-unix.c:128,9'
          Dst:             ovs_strerror
        - Src:             'lib/socket-util-unix.c:128,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/socket-util-unix.c:135,12'
          Dst:             base_name
        - Src:             'lib/socket-util-unix.c:136,11'
          Dst:             snprintf
        - Src:             'lib/socket-util-unix.c:144,9'
          Dst:             close
    - functionName:    af_inet_ifreq_ioctl
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 434
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - ifr
        - cmd
        - cmd_name
      BBCount:         11
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - af_inet_ioctl
        - ovs_strerror
        - ovs_strzcpy
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/socket-util-unix.c:429,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:429,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/socket-util-unix.c:431,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_rate_limit
        - Branch String:   'lib/socket-util-unix.c:431,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:431,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/socket-util-unix.c:433,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/socket-util-unix.c:427,5'
          Dst:             ovs_strzcpy
        - Src:             'lib/socket-util-unix.c:428,13'
          Dst:             af_inet_ioctl
        - Src:             'lib/socket-util-unix.c:431,9'
          Dst:             ovs_strerror
        - Src:             'lib/socket-util-unix.c:431,9'
          Dst:             vlog_rate_limit
    - functionName:    af_inet_ioctl
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - command
        - arg
      BBCount:         20
      ICount:          98
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - ioctl
        - ovsthread_once_done
        - ovsthread_once_start
        - sock_errno
        - sock_strerror
        - socket
        - vlog
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/socket-util-unix.c:406,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:407,16'
              BranchSideFuncs:
                - socket
                - ovsthread_once_done
                - ioctl
                - __errno_location
                - sock_errno.2688
                - sock_strerror
                - vlog
            - BranchSide:      'lib/socket-util-unix.c:416,13'
              BranchSideFuncs:
                - ioctl
                - __errno_location
        - Branch String:   'lib/socket-util-unix.c:408,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:409,25'
              BranchSideFuncs:
                - sock_errno.2688
                - ovsthread_once_done
                - ioctl
                - __errno_location
                - sock_strerror
                - vlog
            - BranchSide:      'lib/socket-util-unix.c:413,9'
              BranchSideFuncs:
                - ovsthread_once_done
                - ioctl
                - __errno_location
        - Branch String:   'lib/socket-util-unix.c:410,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:410,13'
              BranchSideFuncs:
                - sock_strerror
                - vlog
                - ovsthread_once_done
                - ioctl
                - __errno_location
            - BranchSide:      'lib/socket-util-unix.c:411,21'
              BranchSideFuncs:
                - ovsthread_once_done
                - ioctl
                - __errno_location
        - Branch String:   'lib/socket-util-unix.c:416,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:416,25'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util-unix.c:417,21'
              BranchSideFuncs:
                - ioctl
                - __errno_location
        - Branch String:   'lib/socket-util-unix.c:417,15'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:416,13'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/socket-util-unix.c:417,49'
              BranchSideFuncs:
                - __errno_location
      Callsites:
        - Src:             'lib/socket-util-unix.c:406,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/socket-util-unix.c:407,16'
          Dst:             socket
        - Src:             'lib/socket-util-unix.c:409,25'
          Dst:             sock_errno
        - Src:             'lib/socket-util-unix.c:410,13'
          Dst:             sock_strerror
        - Src:             'lib/socket-util-unix.c:410,13'
          Dst:             vlog
        - Src:             'lib/socket-util-unix.c:413,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/socket-util-unix.c:417,15'
          Dst:             ioctl
        - Src:             'lib/socket-util-unix.c:417,49'
          Dst:             __errno_location
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - once
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/thread.h:161,12'
          Branch Sides:
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs:
                - ovsthread_once_start__
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    sock_errno
      functionSourceFile: '/src/openvswitch/lib/socket-util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/socket-util.h:182,12'
          Branch Sides:
            - BranchSide:      'lib/socket-util.h:182,12'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/socket-util.h:182,12'
              BranchSideFuncs:
                - __errno_location
      Callsites:
        - Src:             'lib/socket-util.h:182,12'
          Dst:             __errno_location
    - functionName:    ioctl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_unix_name_len
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 391
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - sun
        - sun_len
      BBCount:         7
      ICount:          41
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/socket-util-unix.c:392,62'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:392,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util-unix.c:393,13'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util-unix.c:392,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:392,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util-unix.c:394,15'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    free_sockaddr_un
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - dirfd
        - linkname
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - close
        - fatal_signal_unlink_file_now
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/socket-util-unix.c:253,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:254,15'
              BranchSideFuncs:
                - close
                - fatal_signal_unlink_file_now
            - BranchSide:      'lib/socket-util-unix.c:256,9'
              BranchSideFuncs:
                - fatal_signal_unlink_file_now
        - Branch String:   'lib/socket-util-unix.c:256,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:256,9'
              BranchSideFuncs:
                - fatal_signal_unlink_file_now
            - BranchSide:      'lib/socket-util-unix.c:257,38'
              BranchSideFuncs:
                - fatal_signal_unlink_file_now
      Callsites:
        - Src:             'lib/socket-util-unix.c:254,9'
          Dst:             close
        - Src:             'lib/socket-util-unix.c:257,9'
          Dst:             fatal_signal_unlink_file_now
    - functionName:    bind_unix_socket
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - fd
        - sun
        - sun_len
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - bind
        - fchmod
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/socket-util-unix.c:269,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:270,20'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/socket-util-unix.c:274,18'
              BranchSideFuncs:
                - bind
                - __errno_location
        - Branch String:   'lib/socket-util-unix.c:274,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:275,20'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/socket-util-unix.c:277,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/socket-util-unix.c:269,13'
          Dst:             fchmod
        - Src:             'lib/socket-util-unix.c:270,20'
          Dst:             __errno_location
        - Src:             'lib/socket-util-unix.c:274,13'
          Dst:             bind
        - Src:             'lib/socket-util-unix.c:275,20'
          Dst:             __errno_location
    - functionName:    fchmod
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    make_sockaddr_un
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 247
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - un
        - un_len
        - dirfdp
        - linkname
      BBCount:         17
      ICount:          124
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - ovs_strzcpy
        - shorten_name_via_proc
        - shorten_name_via_symlink
        - strlen
        - vlog_rate_limit
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/socket-util-unix.c:225,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:227,43'
              BranchSideFuncs:
                - shorten_name_via_proc
                - ovs_strzcpy
                - strlen
                - vlog_rate_limit
                - shorten_name_via_symlink
            - BranchSide:      'lib/socket-util-unix.c:242,5'
              BranchSideFuncs:
                - ovs_strzcpy
                - strlen
        - Branch String:   'lib/socket-util-unix.c:228,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:229,46'
              BranchSideFuncs:
                - shorten_name_via_symlink
                - ovs_strzcpy
                - strlen
                - vlog_rate_limit
            - BranchSide:      'lib/socket-util-unix.c:231,13'
              BranchSideFuncs:
                - ovs_strzcpy
                - strlen
                - vlog_rate_limit
        - Branch String:   'lib/socket-util-unix.c:231,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:234,13'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/socket-util-unix.c:239,16'
              BranchSideFuncs:
                - ovs_strzcpy
                - strlen
        - Branch String:   'lib/socket-util-unix.c:234,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:234,13'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/socket-util-unix.c:236,20'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/socket-util-unix.c:225,9'
          Dst:             strlen
        - Src:             'lib/socket-util-unix.c:227,21'
          Dst:             shorten_name_via_proc
        - Src:             'lib/socket-util-unix.c:229,21'
          Dst:             shorten_name_via_symlink
        - Src:             'lib/socket-util-unix.c:234,13'
          Dst:             vlog_rate_limit
        - Src:             'lib/socket-util-unix.c:243,5'
          Dst:             ovs_strzcpy
        - Src:             'lib/socket-util-unix.c:245,19'
          Dst:             strlen
    - functionName:    make_unix_socket
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - bool
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - style
        - nonblock
        - bind_path
        - connect_path
      BBCount:         48
      ICount:          273
      EdgeCount:       64
      CyclomaticComplexity: 18
      functionsReached:
        - __errno_location
        - bind_unix_socket
        - close
        - connect
        - fatal_signal_add_file_to_unlink
        - fatal_signal_unlink_file_now
        - free_sockaddr_un
        - make_sockaddr_un
        - ovs_strerror
        - set_nonblocking
        - socket
        - unlink
        - vlog
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/socket-util-unix.c:319,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:320,17'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/socket-util-unix.c:327,9'
              BranchSideFuncs:
                - make_sockaddr_un
                - connect
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
                - __errno_location
                - __errno_location
                - unlink
                - fatal_signal_add_file_to_unlink
                - make_sockaddr_un
                - bind_unix_socket
                - free_sockaddr_un
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
                - set_nonblocking
        - Branch String:   'lib/socket-util-unix.c:327,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:328,33'
              BranchSideFuncs:
                - set_nonblocking
                - make_sockaddr_un
                - connect
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
                - __errno_location
                - __errno_location
                - unlink
                - fatal_signal_add_file_to_unlink
                - make_sockaddr_un
                - bind_unix_socket
                - free_sockaddr_un
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/socket-util-unix.c:334,9'
              BranchSideFuncs:
                - make_sockaddr_un
                - connect
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
                - __errno_location
                - __errno_location
                - unlink
                - fatal_signal_add_file_to_unlink
                - make_sockaddr_un
                - bind_unix_socket
                - free_sockaddr_un
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/socket-util-unix.c:329,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:330,13'
              BranchSideFuncs:
                - close
                - fatal_signal_unlink_file_now
            - BranchSide:      'lib/socket-util-unix.c:332,5'
              BranchSideFuncs:
                - make_sockaddr_un
                - connect
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
                - __errno_location
                - __errno_location
                - unlink
                - fatal_signal_add_file_to_unlink
                - make_sockaddr_un
                - bind_unix_socket
                - free_sockaddr_un
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/socket-util-unix.c:334,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:340,20'
              BranchSideFuncs:
                - unlink
                - fatal_signal_add_file_to_unlink
                - make_sockaddr_un
                - bind_unix_socket
                - free_sockaddr_un
                - make_sockaddr_un
                - connect
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/socket-util-unix.c:357,9'
              BranchSideFuncs:
                - make_sockaddr_un
                - connect
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
                - __errno_location
                - __errno_location
        - Branch String:   'lib/socket-util-unix.c:340,31'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:340,34'
              BranchSideFuncs:
                - __errno_location
                - fatal_signal_add_file_to_unlink
                - make_sockaddr_un
                - bind_unix_socket
                - free_sockaddr_un
                - make_sockaddr_un
                - connect
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
                - __errno_location
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/socket-util-unix.c:344,41'
              BranchSideFuncs:
                - fatal_signal_add_file_to_unlink
                - make_sockaddr_un
                - bind_unix_socket
                - free_sockaddr_un
                - make_sockaddr_un
                - connect
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
                - __errno_location
                - __errno_location
        - Branch String:   'lib/socket-util-unix.c:340,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:341,13'
              BranchSideFuncs:
                - fatal_signal_add_file_to_unlink
                - make_sockaddr_un
                - bind_unix_socket
                - free_sockaddr_un
                - make_sockaddr_un
                - connect
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
                - __errno_location
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/socket-util-unix.c:344,41'
              BranchSideFuncs:
                - fatal_signal_add_file_to_unlink
                - make_sockaddr_un
                - bind_unix_socket
                - free_sockaddr_un
                - make_sockaddr_un
                - connect
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
                - __errno_location
                - __errno_location
        - Branch String:   'lib/socket-util-unix.c:341,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:341,13'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
                - fatal_signal_add_file_to_unlink
                - make_sockaddr_un
                - bind_unix_socket
                - free_sockaddr_un
                - make_sockaddr_un
                - connect
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
                - __errno_location
                - __errno_location
            - BranchSide:      'lib/socket-util-unix.c:343,9'
              BranchSideFuncs:
                - fatal_signal_add_file_to_unlink
                - make_sockaddr_un
                - bind_unix_socket
                - free_sockaddr_un
                - make_sockaddr_un
                - connect
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
                - __errno_location
                - __errno_location
        - Branch String:   'lib/socket-util-unix.c:347,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:348,38'
              BranchSideFuncs:
                - free_sockaddr_un
                - make_sockaddr_un
                - connect
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
                - __errno_location
                - __errno_location
            - BranchSide:      'lib/socket-util-unix.c:350,26'
              BranchSideFuncs:
                - free_sockaddr_un
                - make_sockaddr_un
                - connect
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
                - __errno_location
                - __errno_location
        - Branch String:   'lib/socket-util-unix.c:352,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:353,13'
              BranchSideFuncs:
                - close
                - fatal_signal_unlink_file_now
            - BranchSide:      'lib/socket-util-unix.c:355,5'
              BranchSideFuncs:
                - make_sockaddr_un
                - connect
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
                - __errno_location
                - __errno_location
        - Branch String:   'lib/socket-util-unix.c:357,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:363,34'
              BranchSideFuncs:
                - make_sockaddr_un
                - connect
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
                - __errno_location
                - __errno_location
            - BranchSide:      'lib/socket-util-unix.c:376,12'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util-unix.c:365,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:365,24'
              BranchSideFuncs:
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
            - BranchSide:      'lib/socket-util-unix.c:369,26'
              BranchSideFuncs:
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
        - Branch String:   'lib/socket-util-unix.c:366,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:366,16'
              BranchSideFuncs:
                - __errno_location
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
                - __errno_location
            - BranchSide:      'lib/socket-util-unix.c:369,26'
              BranchSideFuncs:
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
        - Branch String:   'lib/socket-util-unix.c:364,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:367,21'
              BranchSideFuncs:
                - __errno_location
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
            - BranchSide:      'lib/socket-util-unix.c:369,26'
              BranchSideFuncs:
                - free_sockaddr_un
                - close
                - fatal_signal_unlink_file_now
        - Branch String:   'lib/socket-util-unix.c:371,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:372,13'
              BranchSideFuncs:
                - close
                - fatal_signal_unlink_file_now
            - BranchSide:      'lib/socket-util-unix.c:374,5'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util-unix.c:379,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:380,15'
              BranchSideFuncs:
                - close
                - fatal_signal_unlink_file_now
            - BranchSide:      'lib/socket-util-unix.c:382,9'
              BranchSideFuncs:
                - close
                - fatal_signal_unlink_file_now
        - Branch String:   'lib/socket-util-unix.c:382,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:383,38'
              BranchSideFuncs:
                - fatal_signal_unlink_file_now
                - close
            - BranchSide:      'lib/socket-util-unix.c:385,11'
              BranchSideFuncs:
                - close
      Callsites:
        - Src:             'lib/socket-util-unix.c:318,10'
          Dst:             socket
        - Src:             'lib/socket-util-unix.c:320,17'
          Dst:             __errno_location
        - Src:             'lib/socket-util-unix.c:328,17'
          Dst:             set_nonblocking
        - Src:             'lib/socket-util-unix.c:340,13'
          Dst:             unlink
        - Src:             'lib/socket-util-unix.c:340,34'
          Dst:             __errno_location
        - Src:             'lib/socket-util-unix.c:341,13'
          Dst:             __errno_location
        - Src:             'lib/socket-util-unix.c:341,13'
          Dst:             ovs_strerror
        - Src:             'lib/socket-util-unix.c:341,13'
          Dst:             vlog
        - Src:             'lib/socket-util-unix.c:344,9'
          Dst:             fatal_signal_add_file_to_unlink
        - Src:             'lib/socket-util-unix.c:346,17'
          Dst:             make_sockaddr_un
        - Src:             'lib/socket-util-unix.c:348,21'
          Dst:             bind_unix_socket
        - Src:             'lib/socket-util-unix.c:350,9'
          Dst:             free_sockaddr_un
        - Src:             'lib/socket-util-unix.c:363,17'
          Dst:             make_sockaddr_un
        - Src:             'lib/socket-util-unix.c:365,16'
          Dst:             connect
        - Src:             'lib/socket-util-unix.c:366,16'
          Dst:             __errno_location
        - Src:             'lib/socket-util-unix.c:367,21'
          Dst:             __errno_location
        - Src:             'lib/socket-util-unix.c:369,9'
          Dst:             free_sockaddr_un
        - Src:             'lib/socket-util-unix.c:383,9'
          Dst:             fatal_signal_unlink_file_now
        - Src:             'lib/socket-util-unix.c:385,5'
          Dst:             close
    - functionName:    unlink
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    drain_rcvbuf
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - fd
      BBCount:         15
      ICount:          79
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - get_socket_rcvbuf
        - recv
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/socket-util-unix.c:79,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:80,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util-unix.c:83,5'
              BranchSideFuncs:
                - recv
        - Branch String:   'lib/socket-util-unix.c:83,5'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:93,32'
              BranchSideFuncs:
                - recv
            - BranchSide:      'lib/socket-util-unix.c:100,5'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util-unix.c:95,26'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:95,29'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util-unix.c:96,13'
              BranchSideFuncs: []
        - Branch String:   'lib/socket-util-unix.c:95,13'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:96,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/socket-util-unix.c:98,19'
              BranchSideFuncs:
                - recv
      Callsites:
        - Src:             'lib/socket-util-unix.c:78,14'
          Dst:             get_socket_rcvbuf
        - Src:             'lib/socket-util-unix.c:93,27'
          Dst:             recv
    - functionName:    recv
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    xpipe_nonblocking
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - fds
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xpipe
        - xset_nonblocking
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/socket-util-unix.c:63,5'
          Dst:             xpipe
        - Src:             'lib/socket-util-unix.c:64,5'
          Dst:             xset_nonblocking
        - Src:             'lib/socket-util-unix.c:65,5'
          Dst:             xset_nonblocking
    - functionName:    xpipe
      functionSourceFile: '/src/openvswitch/lib/socket-util-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - fds
      BBCount:         5
      ICount:          30
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - ovs_strerror
        - pipe
        - vlog_fatal
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/socket-util-unix.c:55,9'
          Branch Sides:
            - BranchSide:      'lib/socket-util-unix.c:56,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/socket-util-unix.c:58,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/socket-util-unix.c:55,9'
          Dst:             pipe
        - Src:             'lib/socket-util-unix.c:56,9'
          Dst:             __errno_location
        - Src:             'lib/socket-util-unix.c:56,9'
          Dst:             ovs_strerror
        - Src:             'lib/socket-util-unix.c:56,9'
          Dst:             vlog_fatal
    - functionName:    pipe
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_this_module_stream_unix
      functionSourceFile: '/src/openvswitch/lib/stream-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-unix.c:39,1'
          Branch Sides:
            - BranchSide:      'lib/stream-unix.c:39,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/stream-unix.c:39,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/stream-unix.c:39,1'
          Dst:             vlog_insert_module
    - functionName:    atomic_count_inc
      functionSourceFile: '/src/openvswitch/lib/ovs-atomic.h'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - count
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    punix_accept
      functionSourceFile: '/src/openvswitch/lib/stream-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - fd
        - ss
        - ss_len
        - streamp
      BBCount:         6
      ICount:          61
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - atomic_count_inc
        - get_unix_name_len
        - new_fd_stream
        - xasprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-unix.c:118,9'
          Branch Sides:
            - BranchSide:      'lib/stream-unix.c:119,45'
              BranchSideFuncs:
                - xasprintf
                - new_fd_stream
            - BranchSide:      'lib/stream-unix.c:125,43'
              BranchSideFuncs:
                - atomic_count_inc.2711
                - xasprintf
                - new_fd_stream
      Callsites:
        - Src:             'lib/stream-unix.c:115,20'
          Dst:             get_unix_name_len
        - Src:             'lib/stream-unix.c:119,22'
          Dst:             xasprintf
        - Src:             'lib/stream-unix.c:125,43'
          Dst:             atomic_count_inc
        - Src:             'lib/stream-unix.c:125,22'
          Dst:             xasprintf
        - Src:             'lib/stream-unix.c:127,12'
          Dst:             new_fd_stream
    - functionName:    punix_open
      functionSourceFile: '/src/openvswitch/lib/stream-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - name
        - suffix
        - pstreamp
        - dscp
      BBCount:         18
      ICount:          127
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - abs_file_name
        - close
        - listen
        - make_unix_socket
        - new_fd_pstream
        - ovs_rundir
        - ovs_strerror
        - punix_accept
        - vlog
        - xstrdup
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-unix.c:92,9'
          Branch Sides:
            - BranchSide:      'lib/stream-unix.c:93,9'
              BranchSideFuncs:
                - free
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/stream-unix.c:98,16'
              BranchSideFuncs:
                - listen
                - xstrdup
                - new_fd_pstream
                - __errno_location
                - close
                - free
                - ovs_strerror
                - vlog
        - Branch String:   'lib/stream-unix.c:93,9'
          Branch Sides:
            - BranchSide:      'lib/stream-unix.c:93,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
                - free
                - __errno_location
            - BranchSide:      'lib/stream-unix.c:94,14'
              BranchSideFuncs:
                - free
                - __errno_location
        - Branch String:   'lib/stream-unix.c:98,9'
          Branch Sides:
            - BranchSide:      'lib/stream-unix.c:99,17'
              BranchSideFuncs:
                - __errno_location
                - close
                - free
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/stream-unix.c:106,35'
              BranchSideFuncs:
                - xstrdup
                - new_fd_pstream
        - Branch String:   'lib/stream-unix.c:100,9'
          Branch Sides:
            - BranchSide:      'lib/stream-unix.c:100,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
                - close
                - free
            - BranchSide:      'lib/stream-unix.c:101,15'
              BranchSideFuncs:
                - close
                - free
      Callsites:
        - Src:             'lib/stream-unix.c:90,31'
          Dst:             ovs_rundir
        - Src:             'lib/stream-unix.c:90,17'
          Dst:             abs_file_name
        - Src:             'lib/stream-unix.c:91,10'
          Dst:             make_unix_socket
        - Src:             'lib/stream-unix.c:93,9'
          Dst:             __errno_location
        - Src:             'lib/stream-unix.c:93,9'
          Dst:             ovs_strerror
        - Src:             'lib/stream-unix.c:93,9'
          Dst:             vlog
        - Src:             'lib/stream-unix.c:95,16'
          Dst:             __errno_location
        - Src:             'lib/stream-unix.c:98,9'
          Dst:             listen
        - Src:             'lib/stream-unix.c:99,17'
          Dst:             __errno_location
        - Src:             'lib/stream-unix.c:100,9'
          Dst:             ovs_strerror
        - Src:             'lib/stream-unix.c:100,9'
          Dst:             vlog
        - Src:             'lib/stream-unix.c:101,9'
          Dst:             close
        - Src:             'lib/stream-unix.c:106,27'
          Dst:             xstrdup
        - Src:             'lib/stream-unix.c:106,12'
          Dst:             new_fd_pstream
        - Src:             'lib/stream-unix.c:106,12'
          Dst:             punix_accept
    - functionName:    unix_open
      functionSourceFile: '/src/openvswitch/lib/stream-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - name
        - suffix
        - streamp
        - dscp
      BBCount:         11
      ICount:          87
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - abs_file_name
        - check_connection_completion
        - make_unix_socket
        - new_fd_stream
        - ovs_rundir
        - ovs_strerror
        - vlog
        - xstrdup
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-unix.c:53,9'
          Branch Sides:
            - BranchSide:      'lib/stream-unix.c:54,9'
              BranchSideFuncs:
                - free
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/stream-unix.c:60,10'
              BranchSideFuncs:
                - free
                - xstrdup
                - check_connection_completion
                - new_fd_stream
        - Branch String:   'lib/stream-unix.c:54,9'
          Branch Sides:
            - BranchSide:      'lib/stream-unix.c:54,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
                - free
            - BranchSide:      'lib/stream-unix.c:56,14'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'lib/stream-unix.c:50,34'
          Dst:             ovs_rundir
        - Src:             'lib/stream-unix.c:50,20'
          Dst:             abs_file_name
        - Src:             'lib/stream-unix.c:51,10'
          Dst:             make_unix_socket
        - Src:             'lib/stream-unix.c:54,9'
          Dst:             ovs_strerror
        - Src:             'lib/stream-unix.c:54,9'
          Dst:             vlog
        - Src:             'lib/stream-unix.c:61,26'
          Dst:             xstrdup
        - Src:             'lib/stream-unix.c:61,45'
          Dst:             check_connection_completion
        - Src:             'lib/stream-unix.c:61,12'
          Dst:             new_fd_stream
    - functionName:    async_append_is_empty
      functionSourceFile: '/src/openvswitch/lib/async-append-aio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ap
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_is_empty
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/async-append-aio.c:89,12'
          Dst:             byteq_is_empty
    - functionName:    async_append_wait
      functionSourceFile: '/src/openvswitch/lib/async-append-aio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ap
      BBCount:         12
      ICount:          89
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - aio_error
        - aio_return
        - aio_suspend
        - async_append_is_empty
        - byteq_advance_tail
        - ignore
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/async-append-aio.c:97,5'
          Branch Sides:
            - BranchSide:      'lib/async-append-aio.c:97,5'
              BranchSideFuncs:
                - aio_error
                - aio_return
                - ignore
                - byteq_advance_tail
                - async_append_is_empty
                - aio_suspend
            - BranchSide:      'lib/async-append-aio.c:98,32'
              BranchSideFuncs:
                - aio_error
                - aio_return
                - ignore
                - byteq_advance_tail
                - async_append_is_empty
                - aio_suspend
        - Branch String:   'lib/async-append-aio.c:101,13'
          Branch Sides:
            - BranchSide:      'lib/async-append-aio.c:102,37'
              BranchSideFuncs:
                - aio_suspend
                - async_append_is_empty
                - aio_error
                - aio_return
                - ignore
                - byteq_advance_tail
            - BranchSide:      'lib/async-append-aio.c:108,31'
              BranchSideFuncs:
                - aio_return
                - ignore
                - byteq_advance_tail
                - async_append_is_empty
                - aio_error
                - aio_suspend
        - Branch String:   'lib/async-append-aio.c:103,17'
          Branch Sides:
            - BranchSide:      'lib/async-append-aio.c:104,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/async-append-aio.c:106,13'
              BranchSideFuncs:
                - aio_suspend
                - async_append_is_empty
                - aio_error
                - aio_return
                - ignore
                - byteq_advance_tail
      Callsites:
        - Src:             'lib/async-append-aio.c:97,13'
          Dst:             async_append_is_empty
        - Src:             'lib/async-append-aio.c:99,21'
          Dst:             aio_error
        - Src:             'lib/async-append-aio.c:106,13'
          Dst:             aio_suspend
        - Src:             'lib/async-append-aio.c:108,20'
          Dst:             aio_return
        - Src:             'lib/async-append-aio.c:108,13'
          Dst:             ignore
        - Src:             'lib/async-append-aio.c:110,13'
          Dst:             byteq_advance_tail
    - functionName:    aio_error
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    aio_suspend
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    aio_return
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    async_append_is_full
      functionSourceFile: '/src/openvswitch/lib/async-append-aio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ap
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - byteq_is_full
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/async-append-aio.c:83,13'
          Branch Sides:
            - BranchSide:      'lib/async-append-aio.c:83,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/async-append-aio.c:83,31'
              BranchSideFuncs:
                - byteq_is_full
      Callsites:
        - Src:             'lib/async-append-aio.c:83,16'
          Dst:             byteq_is_full
    - functionName:    async_append_write
      functionSourceFile: '/src/openvswitch/lib/async-append-aio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ap
        - data_
        - size
      BBCount:         15
      ICount:          151
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - aio_write
        - async_append_flush
        - async_append_is_full
        - async_append_wait
        - byteq_advance_head
        - byteq_head
        - byteq_headroom
        - ignore
        - write
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/async-append-aio.c:121,5'
          Branch Sides:
            - BranchSide:      'lib/async-append-aio.c:121,5'
              BranchSideFuncs:
                - async_append_is_full
                - byteq_head
                - byteq_headroom
                - aio_write
                - byteq_advance_head
                - async_append_flush
                - write
                - ignore
                - async_append_wait
            - BranchSide:      'lib/async-append-aio.c:126,9'
              BranchSideFuncs:
                - async_append_is_full
                - byteq_head
                - byteq_headroom
                - aio_write
                - byteq_advance_head
                - async_append_flush
                - write
                - ignore
                - async_append_wait
        - Branch String:   'lib/async-append-aio.c:126,9'
          Branch Sides:
            - BranchSide:      'lib/async-append-aio.c:127,31'
              BranchSideFuncs:
                - async_append_wait
                - async_append_is_full
                - byteq_head
                - byteq_headroom
                - aio_write
                - byteq_advance_head
                - async_append_flush
                - write
                - ignore
            - BranchSide:      'lib/async-append-aio.c:130,29'
              BranchSideFuncs:
                - byteq_head
                - byteq_headroom
                - aio_write
                - byteq_advance_head
                - async_append_is_full
                - async_append_wait
                - async_append_flush
                - write
                - ignore
        - Branch String:   'lib/async-append-aio.c:132,13'
          Branch Sides:
            - BranchSide:      'lib/async-append-aio.c:133,26'
              BranchSideFuncs:
                - aio_write
                - byteq_advance_head
                - async_append_is_full
                - byteq_head
                - byteq_headroom
                - async_append_wait
                - async_append_flush
                - write
                - ignore
            - BranchSide:      'lib/async-append-aio.c:135,16'
              BranchSideFuncs:
                - aio_write
                - byteq_advance_head
                - async_append_is_full
                - byteq_head
                - byteq_headroom
                - async_append_wait
                - async_append_flush
                - write
                - ignore
        - Branch String:   'lib/async-append-aio.c:144,13'
          Branch Sides:
            - BranchSide:      'lib/async-append-aio.c:145,32'
              BranchSideFuncs:
                - async_append_flush
                - write
                - ignore
            - BranchSide:      'lib/async-append-aio.c:150,17'
              BranchSideFuncs:
                - byteq_advance_head
                - async_append_is_full
                - byteq_head
                - byteq_headroom
                - aio_write
                - async_append_flush
                - write
                - ignore
                - async_append_wait
      Callsites:
        - Src:             'lib/async-append-aio.c:126,16'
          Dst:             async_append_is_full
        - Src:             'lib/async-append-aio.c:127,13'
          Dst:             async_append_wait
        - Src:             'lib/async-append-aio.c:130,17'
          Dst:             byteq_head
        - Src:             'lib/async-append-aio.c:131,22'
          Dst:             byteq_headroom
        - Src:             'lib/async-append-aio.c:144,13'
          Dst:             aio_write
        - Src:             'lib/async-append-aio.c:145,13'
          Dst:             async_append_flush
        - Src:             'lib/async-append-aio.c:146,20'
          Dst:             write
        - Src:             'lib/async-append-aio.c:146,13'
          Dst:             ignore
        - Src:             'lib/async-append-aio.c:152,9'
          Dst:             byteq_advance_head
    - functionName:    aio_write
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    async_append_flush
      functionSourceFile: '/src/openvswitch/lib/async-append-aio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ap
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - async_append_is_empty
        - async_append_wait
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/async-append-aio.c:160,5'
          Branch Sides:
            - BranchSide:      'lib/async-append-aio.c:161,27'
              BranchSideFuncs:
                - async_append_wait
                - async_append_is_empty
            - BranchSide:      'lib/async-append-aio.c:163,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/async-append-aio.c:160,13'
          Dst:             async_append_is_empty
        - Src:             'lib/async-append-aio.c:161,9'
          Dst:             async_append_wait
    - functionName:    async_append_destroy
      functionSourceFile: '/src/openvswitch/lib/async-append-aio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ap
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - async_append_flush
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/async-append-aio.c:71,9'
          Branch Sides:
            - BranchSide:      'lib/async-append-aio.c:71,9'
              BranchSideFuncs:
                - async_append_flush
                - free
                - free
                - free
            - BranchSide:      'lib/async-append-aio.c:72,28'
              BranchSideFuncs:
                - async_append_flush
                - free
                - free
                - free
      Callsites:
        - Src:             'lib/async-append-aio.c:72,9'
          Dst:             async_append_flush
    - functionName:    async_append_create
      functionSourceFile: '/src/openvswitch/lib/async-append-aio.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - fd
      BBCount:         3
      ICount:          43
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_init
        - xmalloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/async-append-aio.c:58,10'
          Dst:             xmalloc
        - Src:             'lib/async-append-aio.c:60,18'
          Dst:             xmalloc
        - Src:             'lib/async-append-aio.c:62,18'
          Dst:             xmalloc
        - Src:             'lib/async-append-aio.c:63,5'
          Dst:             byteq_init
    - functionName:    init_this_module_stream_ssl
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:67,1'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:67,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/stream-ssl.c:67,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/stream-ssl.c:67,1'
          Dst:             vlog_insert_module
    - functionName:    hmap_next__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - start
      BBCount:         8
      ICount:          55
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:403,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:404,34'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:409,5'
              BranchSideFuncs: []
        - Branch String:   './include/openvswitch/hmap.h:405,13'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:406,20'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:408,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    bitmap_unit__
      functionSourceFile: '/src/openvswitch/lib/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - bitmap
        - offset
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bitmap_bit__
      functionSourceFile: '/src/openvswitch/lib/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - offset
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    tmp_dh_callback
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1082
      functionLinenumberEnd: 1110
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ssl
        - is_export
        - keylength
      BBCount:         20
      ICount:          107
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - out_of_memory
        - vlog_rate_limit
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1096,5'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1097,13'
              BranchSideFuncs:
                - vlog_rate_limit
                - out_of_memory
            - BranchSide:      'lib/stream-ssl.c:1107,5'
              BranchSideFuncs:
                - vlog_rate_limit
        - Branch String:   'lib/stream-ssl.c:1097,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1098,18'
              BranchSideFuncs:
                - out_of_memory
            - BranchSide:      'lib/stream-ssl.c:1106,5'
              BranchSideFuncs:
                - vlog_rate_limit
                - out_of_memory
        - Branch String:   'lib/stream-ssl.c:1098,17'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1099,26'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1104,20'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:1100,21'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1101,21'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1103,13'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:1107,5'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1107,5'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:1109,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-ssl.c:1101,21'
          Dst:             out_of_memory
        - Src:             'lib/stream-ssl.c:1107,5'
          Dst:             vlog_rate_limit
    - functionName:    do_ssl_init
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1008
      functionLinenumberEnd: 1077
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         36
      ICount:          184
      EdgeCount:       45
      CyclomaticComplexity: 11
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - RAND_seed
        - RAND_status
        - SSL_CTX_ctrl
        - SSL_CTX_new
        - SSL_CTX_set_cipher_list
        - SSL_CTX_set_tmp_dh_callback
        - SSL_CTX_set_verify
        - TLS_method
        - get_entropy
        - ovs_retval_to_string
        - tmp_dh_callback
        - vlog
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1009,10'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1009,10'
              BranchSideFuncs:
                - RAND_status
                - get_entropy
                - RAND_seed
                - TLS_method
                - SSL_CTX_new
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - SSL_CTX_set_tmp_dh_callback
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - SSL_CTX_set_verify
                - SSL_CTX_ctrl
                - SSL_CTX_set_cipher_list
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ovs_retval_to_string
                - vlog
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1009,10'
              BranchSideFuncs:
                - RAND_status
                - get_entropy
                - RAND_seed
                - TLS_method
                - SSL_CTX_new
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - SSL_CTX_set_tmp_dh_callback
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - SSL_CTX_set_verify
                - SSL_CTX_ctrl
                - SSL_CTX_set_cipher_list
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ovs_retval_to_string
                - vlog
                - vlog
        - Branch String:   'lib/stream-ssl.c:1009,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1027,9'
              BranchSideFuncs:
                - TLS_method
                - SSL_CTX_new
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - SSL_CTX_set_tmp_dh_callback
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - SSL_CTX_set_verify
                - SSL_CTX_ctrl
                - SSL_CTX_set_cipher_list
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1044,32'
              BranchSideFuncs:
                - TLS_method
                - SSL_CTX_new
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - SSL_CTX_set_tmp_dh_callback
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - SSL_CTX_set_verify
                - SSL_CTX_ctrl
                - SSL_CTX_set_cipher_list
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:1027,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1027,9'
              BranchSideFuncs:
                - vlog
                - get_entropy
                - RAND_seed
                - TLS_method
                - SSL_CTX_new
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - SSL_CTX_set_tmp_dh_callback
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - SSL_CTX_set_verify
                - SSL_CTX_ctrl
                - SSL_CTX_set_cipher_list
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ovs_retval_to_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1029,30'
              BranchSideFuncs:
                - get_entropy
                - RAND_seed
                - TLS_method
                - SSL_CTX_new
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - SSL_CTX_set_tmp_dh_callback
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - SSL_CTX_set_verify
                - SSL_CTX_ctrl
                - SSL_CTX_set_cipher_list
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ovs_retval_to_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:1030,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1031,13'
              BranchSideFuncs:
                - ovs_retval_to_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1036,19'
              BranchSideFuncs:
                - RAND_seed
                - TLS_method
                - SSL_CTX_new
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - SSL_CTX_set_tmp_dh_callback
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - SSL_CTX_set_verify
                - SSL_CTX_ctrl
                - SSL_CTX_set_cipher_list
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:1031,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1031,13'
              BranchSideFuncs:
                - ovs_retval_to_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1033,20'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:1033,20'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1033,33'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1033,13'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:1045,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1046,9'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1050,23'
              BranchSideFuncs:
                - SSL_CTX_new
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - SSL_CTX_set_tmp_dh_callback
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - SSL_CTX_set_verify
                - SSL_CTX_ctrl
                - SSL_CTX_set_cipher_list
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:1046,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1046,9'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1047,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:1051,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1052,9'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1061,5'
              BranchSideFuncs:
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - SSL_CTX_set_tmp_dh_callback
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - SSL_CTX_set_verify
                - SSL_CTX_ctrl
                - SSL_CTX_set_cipher_list
        - Branch String:   'lib/stream-ssl.c:1052,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1052,9'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1053,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-ssl.c:1009,10'
          Dst:             RAND_status
        - Src:             'lib/stream-ssl.c:1027,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1029,18'
          Dst:             get_entropy
        - Src:             'lib/stream-ssl.c:1031,13'
          Dst:             ovs_retval_to_string
        - Src:             'lib/stream-ssl.c:1031,13'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1036,9'
          Dst:             RAND_seed
        - Src:             'lib/stream-ssl.c:1044,32'
          Dst:             TLS_method
        - Src:             'lib/stream-ssl.c:1046,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:1046,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:1046,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1050,11'
          Dst:             SSL_CTX_new
        - Src:             'lib/stream-ssl.c:1052,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:1052,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:1052,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1061,5'
          Dst:             SSL_CTX_ctrl
        - Src:             'lib/stream-ssl.c:1062,5'
          Dst:             SSL_CTX_ctrl
        - Src:             'lib/stream-ssl.c:1065,5'
          Dst:             SSL_CTX_set_tmp_dh_callback
        - Src:             'lib/stream-ssl.c:1065,5'
          Dst:             tmp_dh_callback
        - Src:             'lib/stream-ssl.c:1069,5'
          Dst:             SSL_CTX_ctrl
        - Src:             'lib/stream-ssl.c:1070,5'
          Dst:             SSL_CTX_ctrl
        - Src:             'lib/stream-ssl.c:1071,5'
          Dst:             SSL_CTX_set_verify
        - Src:             'lib/stream-ssl.c:1073,5'
          Dst:             SSL_CTX_ctrl
        - Src:             'lib/stream-ssl.c:1074,5'
          Dst:             SSL_CTX_set_cipher_list
    - functionName:    RAND_status
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RAND_seed
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    TLS_method
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ERR_get_error
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    18
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ERR_error_string
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    18
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_ctrl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_set_tmp_dh_callback
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_set_verify
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_set_cipher_list
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pstream_assert_class
      functionSourceFile: '/src/openvswitch/lib/stream-provider.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
        - class
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pssl_pstream_cast
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 881
      functionLinenumberEnd: 883
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pstream_assert_class
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:882,5'
          Dst:             pstream_assert_class
    - functionName:    pssl_open
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 889
      functionLinenumberEnd: 920
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - name
        - suffix
        - pstreamp
        - dscp
      BBCount:         8
      ICount:          95
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ds_put_format
        - ds_steal_cstr
        - htons
        - inet_open_passive
        - pstream_init
        - pstream_set_bound_port
        - ss_format_address
        - ss_get_port
        - ssl_init
        - xmalloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:897,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:898,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:901,41'
              BranchSideFuncs:
                - inet_open_passive
                - ss_get_port
                - ds_put_format
                - ss_format_address
                - xmalloc
                - ds_steal_cstr
                - pstream_init
                - htons
                - pstream_set_bound_port
        - Branch String:   'lib/stream-ssl.c:902,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:903,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:906,12'
              BranchSideFuncs:
                - ss_get_port
                - ds_put_format
                - ss_format_address
                - xmalloc
                - ds_steal_cstr
                - pstream_init
                - htons
                - pstream_set_bound_port
      Callsites:
        - Src:             'lib/stream-ssl.c:896,14'
          Dst:             ssl_init
        - Src:             'lib/stream-ssl.c:901,10'
          Dst:             inet_open_passive
        - Src:             'lib/stream-ssl.c:906,12'
          Dst:             ss_get_port
        - Src:             'lib/stream-ssl.c:909,5'
          Dst:             ds_put_format
        - Src:             'lib/stream-ssl.c:910,5'
          Dst:             ss_format_address
        - Src:             'lib/stream-ssl.c:912,12'
          Dst:             xmalloc
        - Src:             'lib/stream-ssl.c:914,18'
          Dst:             ds_steal_cstr
        - Src:             'lib/stream-ssl.c:913,5'
          Dst:             pstream_init
        - Src:             'lib/stream-ssl.c:915,44'
          Dst:             htons
        - Src:             'lib/stream-ssl.c:915,5'
          Dst:             pstream_set_bound_port
    - functionName:    pssl_close
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 924
      functionLinenumberEnd: 928
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - close
        - pssl_pstream_cast
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:925,33'
          Dst:             pssl_pstream_cast
        - Src:             'lib/stream-ssl.c:926,5'
          Dst:             close
    - functionName:    pssl_accept
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 932
      functionLinenumberEnd: 965
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
        - new_streamp
      BBCount:         16
      ICount:          117
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - accept
        - close
        - ds_put_cstr
        - ds_put_format
        - ds_steal_cstr
        - new_ssl_stream
        - pssl_pstream_cast
        - set_nonblocking
        - sock_errno
        - sock_strerror
        - ss_format_address
        - ss_get_port
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:940,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:941,17'
              BranchSideFuncs:
                - sock_errno.2894
                - sock_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:953,29'
              BranchSideFuncs:
                - set_nonblocking
                - ds_put_cstr
                - ss_format_address
                - ss_get_port
                - ds_put_format
                - ds_steal_cstr
                - new_ssl_stream
                - close
        - Branch String:   'lib/stream-ssl.c:947,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:948,13'
              BranchSideFuncs:
                - sock_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:950,16'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:948,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:948,13'
              BranchSideFuncs:
                - sock_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:949,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:954,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:955,21'
              BranchSideFuncs:
                - close
            - BranchSide:      'lib/stream-ssl.c:959,15'
              BranchSideFuncs:
                - ds_put_cstr
                - ss_format_address
                - ss_get_port
                - ds_put_format
                - ds_steal_cstr
                - new_ssl_stream
      Callsites:
        - Src:             'lib/stream-ssl.c:933,33'
          Dst:             pssl_pstream_cast
        - Src:             'lib/stream-ssl.c:939,14'
          Dst:             accept
        - Src:             'lib/stream-ssl.c:941,17'
          Dst:             sock_errno
        - Src:             'lib/stream-ssl.c:948,13'
          Dst:             sock_strerror
        - Src:             'lib/stream-ssl.c:948,13'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:953,13'
          Dst:             set_nonblocking
        - Src:             'lib/stream-ssl.c:955,9'
          Dst:             close
        - Src:             'lib/stream-ssl.c:960,5'
          Dst:             ds_put_cstr
        - Src:             'lib/stream-ssl.c:961,5'
          Dst:             ss_format_address
        - Src:             'lib/stream-ssl.c:962,38'
          Dst:             ss_get_port
        - Src:             'lib/stream-ssl.c:962,5'
          Dst:             ds_put_format
        - Src:             'lib/stream-ssl.c:963,27'
          Dst:             ds_steal_cstr
        - Src:             'lib/stream-ssl.c:963,12'
          Dst:             new_ssl_stream
    - functionName:    pssl_wait
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 969
      functionLinenumberEnd: 972
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - poll_fd_wait_at
        - pssl_pstream_cast
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:970,33'
          Dst:             pssl_pstream_cast
        - Src:             'lib/stream-ssl.c:971,5'
          Dst:             poll_fd_wait_at
    - functionName:    accept
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sock_errno
      functionSourceFile: '/src/openvswitch/lib/socket-util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/socket-util.h:182,12'
          Branch Sides:
            - BranchSide:      'lib/socket-util.h:182,12'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/socket-util.h:182,12'
              BranchSideFuncs:
                - __errno_location
      Callsites:
        - Src:             'lib/socket-util.h:182,12'
          Dst:             __errno_location
    - functionName:    new_ssl_stream
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 328
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - server_name
        - fd
        - type
        - state
        - streamp
      BBCount:         86
      ICount:          441
      EdgeCount:       111
      CyclomaticComplexity: 27
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - SSL_CTX_check_private_key
        - SSL_ctrl
        - SSL_free
        - SSL_new
        - SSL_set_fd
        - SSL_set_msg_callback
        - SSL_set_verify
        - close
        - setsockopt_tcp_nodelay
        - ssl_protocol_cb
        - stream_init
        - vlog
        - vlog_is_enabled
        - xmalloc
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:249,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:250,9'
              BranchSideFuncs:
                - SSL_CTX_check_private_key
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
                - ERR_get_error
                - ERR_error_string
                - vlog
                - vlog
                - vlog
            - BranchSide:      'lib/stream-ssl.c:253,22'
              BranchSideFuncs:
                - SSL_CTX_check_private_key
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
                - ERR_get_error
                - ERR_error_string
                - vlog
                - vlog
                - vlog
        - Branch String:   'lib/stream-ssl.c:250,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:250,9'
              BranchSideFuncs:
                - vlog
                - SSL_CTX_check_private_key
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
                - ERR_get_error
                - ERR_error_string
                - vlog
                - vlog
                - vlog
            - BranchSide:      'lib/stream-ssl.c:251,16'
              BranchSideFuncs:
                - SSL_CTX_check_private_key
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
                - ERR_get_error
                - ERR_error_string
                - vlog
                - vlog
                - vlog
        - Branch String:   'lib/stream-ssl.c:253,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:254,9'
              BranchSideFuncs:
                - SSL_CTX_check_private_key
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
                - ERR_get_error
                - ERR_error_string
                - vlog
                - vlog
            - BranchSide:      'lib/stream-ssl.c:257,18'
              BranchSideFuncs:
                - SSL_CTX_check_private_key
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
                - ERR_get_error
                - ERR_error_string
                - vlog
                - vlog
        - Branch String:   'lib/stream-ssl.c:254,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:254,9'
              BranchSideFuncs:
                - vlog
                - SSL_CTX_check_private_key
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
                - ERR_get_error
                - ERR_error_string
                - vlog
                - vlog
            - BranchSide:      'lib/stream-ssl.c:255,16'
              BranchSideFuncs:
                - SSL_CTX_check_private_key
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
                - ERR_get_error
                - ERR_error_string
                - vlog
                - vlog
        - Branch String:   'lib/stream-ssl.c:257,23'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:257,26'
              BranchSideFuncs:
                - SSL_CTX_check_private_key
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:261,10'
              BranchSideFuncs:
                - SSL_CTX_check_private_key
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:257,43'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:257,47'
              BranchSideFuncs:
                - SSL_CTX_check_private_key
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
                - ERR_get_error
                - ERR_error_string
                - vlog
                - vlog
            - BranchSide:      'lib/stream-ssl.c:261,10'
              BranchSideFuncs:
                - SSL_CTX_check_private_key
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:257,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:258,9'
              BranchSideFuncs:
                - SSL_CTX_check_private_key
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:261,10'
              BranchSideFuncs:
                - SSL_CTX_check_private_key
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:258,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:258,9'
              BranchSideFuncs:
                - vlog
                - SSL_CTX_check_private_key
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:259,16'
              BranchSideFuncs:
                - SSL_CTX_check_private_key
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:261,17'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:261,47'
              BranchSideFuncs:
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
            - BranchSide:      'lib/stream-ssl.c:266,9'
              BranchSideFuncs:
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
        - Branch String:   'lib/stream-ssl.c:261,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:262,9'
              BranchSideFuncs:
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
            - BranchSide:      'lib/stream-ssl.c:266,9'
              BranchSideFuncs:
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
        - Branch String:   'lib/stream-ssl.c:262,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:262,9'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
            - BranchSide:      'lib/stream-ssl.c:264,16'
              BranchSideFuncs:
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
        - Branch String:   'lib/stream-ssl.c:266,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:267,9'
              BranchSideFuncs:
                - close
                - free
                - free
                - SSL_free
            - BranchSide:      'lib/stream-ssl.c:273,9'
              BranchSideFuncs:
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - setsockopt_tcp_nodelay
        - Branch String:   'lib/stream-ssl.c:273,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:274,32'
              BranchSideFuncs:
                - setsockopt_tcp_nodelay
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:278,19'
              BranchSideFuncs:
                - SSL_new
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:279,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:280,9'
              BranchSideFuncs:
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:284,20'
              BranchSideFuncs:
                - SSL_set_fd
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:280,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:280,9'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
                - close
                - free
                - free
                - SSL_free
            - BranchSide:      'lib/stream-ssl.c:281,16'
              BranchSideFuncs:
                - close
                - free
                - free
                - SSL_free
        - Branch String:   'lib/stream-ssl.c:284,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:285,9'
              BranchSideFuncs:
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:289,10'
              BranchSideFuncs:
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:285,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:285,9'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
                - close
                - free
                - free
                - SSL_free
            - BranchSide:      'lib/stream-ssl.c:286,16'
              BranchSideFuncs:
                - close
                - free
                - free
                - SSL_free
        - Branch String:   'lib/stream-ssl.c:289,27'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:289,31'
              BranchSideFuncs:
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - SSL_set_verify
            - BranchSide:      'lib/stream-ssl.c:290,24'
              BranchSideFuncs:
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:289,49'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:289,52'
              BranchSideFuncs:
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - SSL_set_verify
            - BranchSide:      'lib/stream-ssl.c:292,9'
              BranchSideFuncs:
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:289,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:290,24'
              BranchSideFuncs:
                - SSL_set_verify
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:292,9'
              BranchSideFuncs:
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:292,21'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:292,25'
              BranchSideFuncs:
                - SSL_ctrl
                - close
                - free
                - free
                - SSL_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
            - BranchSide:      'lib/stream-ssl.c:300,12'
              BranchSideFuncs:
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
        - Branch String:   'lib/stream-ssl.c:292,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:293,9'
              BranchSideFuncs:
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
            - BranchSide:      'lib/stream-ssl.c:300,12'
              BranchSideFuncs:
                - xmalloc
                - stream_init
                - vlog_is_enabled
                - free
                - SSL_set_msg_callback
                - SSL_ctrl
        - Branch String:   'lib/stream-ssl.c:293,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:293,9'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
                - close
                - free
                - free
                - SSL_free
            - BranchSide:      'lib/stream-ssl.c:295,16'
              BranchSideFuncs:
                - close
                - free
                - free
                - SSL_free
        - Branch String:   'lib/stream-ssl.c:311,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:312,30'
              BranchSideFuncs:
                - SSL_set_msg_callback
                - SSL_ctrl
                - free
            - BranchSide:      'lib/stream-ssl.c:316,17'
              BranchSideFuncs:
                - free
        - Branch String:   'lib/stream-ssl.c:321,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:322,18'
              BranchSideFuncs:
                - SSL_free
                - close
                - free
                - free
            - BranchSide:      'lib/stream-ssl.c:324,17'
              BranchSideFuncs:
                - close
                - free
                - free
      Callsites:
        - Src:             'lib/stream-ssl.c:250,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:254,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:258,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:261,21'
          Dst:             SSL_CTX_check_private_key
        - Src:             'lib/stream-ssl.c:262,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:262,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:262,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:274,9'
          Dst:             setsockopt_tcp_nodelay
        - Src:             'lib/stream-ssl.c:278,11'
          Dst:             SSL_new
        - Src:             'lib/stream-ssl.c:280,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:280,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:280,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:284,9'
          Dst:             SSL_set_fd
        - Src:             'lib/stream-ssl.c:285,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:285,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:285,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:290,9'
          Dst:             SSL_set_verify
        - Src:             'lib/stream-ssl.c:292,25'
          Dst:             SSL_ctrl
        - Src:             'lib/stream-ssl.c:293,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:293,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:293,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:300,12'
          Dst:             xmalloc
        - Src:             'lib/stream-ssl.c:301,5'
          Dst:             stream_init
        - Src:             'lib/stream-ssl.c:311,9'
          Dst:             vlog_is_enabled
        - Src:             'lib/stream-ssl.c:312,9'
          Dst:             SSL_set_msg_callback
        - Src:             'lib/stream-ssl.c:312,9'
          Dst:             ssl_protocol_cb
        - Src:             'lib/stream-ssl.c:313,9'
          Dst:             SSL_ctrl
        - Src:             'lib/stream-ssl.c:322,9'
          Dst:             SSL_free
        - Src:             'lib/stream-ssl.c:324,5'
          Dst:             close
    - functionName:    SSL_CTX_check_private_key
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_set_fd
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_set_verify
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_ctrl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_protocol_cb
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1586
      functionLinenumberEnd: 1615
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - int
        - int
        - int
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - write_p
        - version
        - content_type
        - buf_
        - len
        - ssl
        - sslv_
      BBCount:         20
      ICount:          141
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - ds_cstr
        - ds_destroy
        - ds_init
        - ds_put_cstr
        - ds_put_format
        - ssl_alert_description_to_string
        - ssl_alert_level_to_string
        - ssl_handshake_type_to_string
        - stream_get_name
        - vlog
        - vlog_is_enabled
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1591,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1592,9'
              BranchSideFuncs:
                - ds_init
                - ds_put_format
                - ds_destroy
                - stream_get_name
                - ds_cstr
                - vlog
                - ssl_handshake_type_to_string
                - ds_put_format
                - ssl_alert_level_to_string
                - ssl_alert_description_to_string
                - ds_put_format
                - ds_put_cstr
            - BranchSide:      'lib/stream-ssl.c:1595,5'
              BranchSideFuncs:
                - ds_init
                - ds_put_format
                - ds_destroy
                - stream_get_name
                - ds_cstr
                - vlog
                - ssl_handshake_type_to_string
                - ds_put_format
                - ssl_alert_level_to_string
                - ssl_alert_description_to_string
                - ds_put_format
                - ds_put_cstr
        - Branch String:   'lib/stream-ssl.c:1596,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1597,9'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_destroy
                - stream_get_name
                - ds_cstr
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1598,16'
              BranchSideFuncs:
                - ds_put_format
                - ds_destroy
                - stream_get_name
                - ds_cstr
                - vlog
                - ssl_handshake_type_to_string
                - ds_put_format
                - ssl_alert_level_to_string
                - ssl_alert_description_to_string
                - ds_put_format
        - Branch String:   'lib/stream-ssl.c:1598,16'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1600,49'
              BranchSideFuncs:
                - ssl_alert_level_to_string
                - ssl_alert_description_to_string
                - ds_put_format
                - ds_destroy
                - stream_get_name
                - ds_cstr
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1602,16'
              BranchSideFuncs:
                - ds_put_format
                - ds_destroy
                - stream_get_name
                - ds_cstr
                - vlog
                - ssl_handshake_type_to_string
                - ds_put_format
        - Branch String:   'lib/stream-ssl.c:1602,16'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1604,52'
              BranchSideFuncs:
                - ssl_handshake_type_to_string
                - ds_put_format
                - ds_destroy
                - stream_get_name
                - ds_cstr
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1606,44'
              BranchSideFuncs:
                - ds_put_format
                - ds_destroy
                - stream_get_name
                - ds_cstr
                - vlog
        - Branch String:   'lib/stream-ssl.c:1609,5'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1609,5'
              BranchSideFuncs:
                - stream_get_name
                - ds_cstr
                - vlog
                - ds_destroy
            - BranchSide:      'lib/stream-ssl.c:1614,5'
              BranchSideFuncs:
                - ds_destroy
      Callsites:
        - Src:             'lib/stream-ssl.c:1591,10'
          Dst:             vlog_is_enabled
        - Src:             'lib/stream-ssl.c:1595,5'
          Dst:             ds_init
        - Src:             'lib/stream-ssl.c:1597,9'
          Dst:             ds_put_cstr
        - Src:             'lib/stream-ssl.c:1600,23'
          Dst:             ssl_alert_level_to_string
        - Src:             'lib/stream-ssl.c:1601,23'
          Dst:             ssl_alert_description_to_string
        - Src:             'lib/stream-ssl.c:1599,9'
          Dst:             ds_put_format
        - Src:             'lib/stream-ssl.c:1604,23'
          Dst:             ssl_handshake_type_to_string
        - Src:             'lib/stream-ssl.c:1603,9'
          Dst:             ds_put_format
        - Src:             'lib/stream-ssl.c:1606,9'
          Dst:             ds_put_format
        - Src:             'lib/stream-ssl.c:1609,5'
          Dst:             stream_get_name
        - Src:             'lib/stream-ssl.c:1609,5'
          Dst:             ds_cstr
        - Src:             'lib/stream-ssl.c:1609,5'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1614,5'
          Dst:             ds_destroy
    - functionName:    SSL_set_msg_callback
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_alert_level_to_string
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1526
      functionLinenumberEnd: 1532
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - type
      BBCount:         5
      ICount:          29
      EdgeCount:       8
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1527,5'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1528,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1529,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1530,14'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ssl_alert_description_to_string
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1536
      functionLinenumberEnd: 1563
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - type
      BBCount:         26
      ICount:          134
      EdgeCount:       50
      CyclomaticComplexity: 26
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1537,5'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1538,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1539,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1540,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1541,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1542,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1543,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1544,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1545,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1546,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1547,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1548,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1549,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1550,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1551,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1552,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1553,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1554,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1555,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1556,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1557,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1558,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1559,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1560,15'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1561,14'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ssl_handshake_type_to_string
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1567
      functionLinenumberEnd: 1581
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - type
      BBCount:         13
      ICount:          69
      EdgeCount:       24
      CyclomaticComplexity: 13
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1568,5'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1569,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1570,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1571,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1572,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1573,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1574,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1575,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1576,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1577,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1578,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1579,14'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ssl_open
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 363
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - name
        - suffix
        - streamp
        - dscp
      BBCount:         13
      ICount:          99
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - get_server_name
        - inet_open_active
        - new_ssl_stream
        - ovs_strerror
        - ssl_init
        - vlog
        - xstrdup
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:367,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:368,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:371,43'
              BranchSideFuncs:
                - inet_open_active
                - ovs_strerror
                - vlog
                - xstrdup
                - get_server_name
                - new_ssl_stream
        - Branch String:   'lib/stream-ssl.c:373,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:374,21'
              BranchSideFuncs:
                - xstrdup
                - get_server_name
                - new_ssl_stream
            - BranchSide:      'lib/stream-ssl.c:378,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
        - Branch String:   'lib/stream-ssl.c:378,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:378,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/stream-ssl.c:379,16'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-ssl.c:366,13'
          Dst:             ssl_init
        - Src:             'lib/stream-ssl.c:371,13'
          Dst:             inet_open_active
        - Src:             'lib/stream-ssl.c:375,31'
          Dst:             xstrdup
        - Src:             'lib/stream-ssl.c:375,46'
          Dst:             get_server_name
        - Src:             'lib/stream-ssl.c:375,16'
          Dst:             new_ssl_stream
        - Src:             'lib/stream-ssl.c:378,9'
          Dst:             ovs_strerror
        - Src:             'lib/stream-ssl.c:378,9'
          Dst:             vlog
    - functionName:    ssl_close
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 589
      functionLinenumberEnd: 608
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ERR_clear_error
        - SSL_free
        - SSL_shutdown
        - close
        - ssl_clear_txbuf
        - ssl_stream_cast
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:590,31'
          Dst:             ssl_stream_cast
        - Src:             'lib/stream-ssl.c:591,5'
          Dst:             ssl_clear_txbuf
        - Src:             'lib/stream-ssl.c:598,5'
          Dst:             SSL_shutdown
        - Src:             'lib/stream-ssl.c:603,5'
          Dst:             ERR_clear_error
        - Src:             'lib/stream-ssl.c:605,5'
          Dst:             SSL_free
        - Src:             'lib/stream-ssl.c:606,5'
          Dst:             close
    - functionName:    ssl_connect
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 512
      functionLinenumberEnd: 585
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         46
      ICount:          290
      EdgeCount:       57
      CyclomaticComplexity: 13
      functionsReached:
        - SSL_accept
        - SSL_connect
        - SSL_get_error
        - SSL_get_servername
        - SSL_get_verify_mode
        - abort
        - check_connection_completion
        - do_ca_cert_bootstrap
        - get_peer_common_name
        - interpret_ssl_error
        - recv
        - setsockopt_tcp_nodelay
        - shutdown
        - ssl_stream_cast
        - ssl_wants_io
        - stream_get_name
        - stream_report_content
        - stream_set_peer_id
        - vlog
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:516,5'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:518,46'
              BranchSideFuncs:
                - check_connection_completion
                - setsockopt_tcp_nodelay
                - SSL_accept
                - SSL_get_servername
                - get_peer_common_name
                - stream_set_peer_id
                - free
                - vlog
                - SSL_get_verify_mode
                - vlog
                - do_ca_cert_bootstrap
                - SSL_get_error
                - interpret_ssl_error
                - shutdown
                - stream_get_name
                - stream_report_content
                - ssl_wants_io
                - SSL_connect
                - recv
            - BranchSide:      'lib/stream-ssl.c:529,13'
              BranchSideFuncs:
                - SSL_accept
                - SSL_get_servername
                - get_peer_common_name
                - stream_set_peer_id
                - free
                - vlog
                - SSL_get_verify_mode
                - vlog
                - do_ca_cert_bootstrap
                - SSL_get_error
                - interpret_ssl_error
                - shutdown
                - stream_get_name
                - stream_report_content
                - ssl_wants_io
                - SSL_connect
                - recv
            - BranchSide:      'lib/stream-ssl.c:584,5'
              BranchSideFuncs:
                - abort
        - Branch String:   'lib/stream-ssl.c:519,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:520,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:522,9'
              BranchSideFuncs:
                - setsockopt_tcp_nodelay
                - SSL_accept
                - SSL_get_servername
                - get_peer_common_name
                - stream_set_peer_id
                - free
                - vlog
                - SSL_get_verify_mode
                - vlog
                - do_ca_cert_bootstrap
                - SSL_get_error
                - interpret_ssl_error
                - shutdown
                - stream_get_name
                - stream_report_content
                - ssl_wants_io
                - SSL_connect
                - recv
        - Branch String:   'lib/stream-ssl.c:529,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:530,33'
              BranchSideFuncs:
                - recv
                - SSL_accept
                - SSL_get_servername
                - get_peer_common_name
                - stream_set_peer_id
                - free
                - vlog
                - SSL_get_verify_mode
                - vlog
                - do_ca_cert_bootstrap
                - SSL_get_error
                - interpret_ssl_error
                - shutdown
                - stream_get_name
                - stream_report_content
                - ssl_wants_io
                - SSL_connect
            - BranchSide:      'lib/stream-ssl.c:534,19'
              BranchSideFuncs:
                - SSL_accept
                - SSL_get_servername
                - get_peer_common_name
                - stream_set_peer_id
                - free
                - vlog
                - SSL_get_verify_mode
                - vlog
                - do_ca_cert_bootstrap
                - SSL_get_error
                - interpret_ssl_error
                - shutdown
                - stream_get_name
                - stream_report_content
                - ssl_wants_io
                - SSL_connect
        - Branch String:   'lib/stream-ssl.c:534,19'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:535,34'
              BranchSideFuncs:
                - SSL_connect
                - SSL_get_servername
                - get_peer_common_name
                - stream_set_peer_id
                - free
                - vlog
                - SSL_get_verify_mode
                - vlog
                - do_ca_cert_bootstrap
                - SSL_get_error
                - interpret_ssl_error
                - shutdown
                - stream_get_name
                - stream_report_content
                - ssl_wants_io
            - BranchSide:      'lib/stream-ssl.c:535,58'
              BranchSideFuncs:
                - SSL_accept
                - SSL_get_servername
                - get_peer_common_name
                - stream_set_peer_id
                - free
                - vlog
                - SSL_get_verify_mode
                - vlog
                - do_ca_cert_bootstrap
                - SSL_get_error
                - interpret_ssl_error
                - shutdown
                - stream_get_name
                - stream_report_content
                - ssl_wants_io
        - Branch String:   'lib/stream-ssl.c:536,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:537,39'
              BranchSideFuncs:
                - SSL_get_error
                - interpret_ssl_error
                - shutdown
                - stream_get_name
                - stream_report_content
                - ssl_wants_io
            - BranchSide:      'lib/stream-ssl.c:550,20'
              BranchSideFuncs:
                - SSL_get_servername
                - get_peer_common_name
                - stream_set_peer_id
                - free
                - vlog
                - SSL_get_verify_mode
                - vlog
                - do_ca_cert_bootstrap
        - Branch String:   'lib/stream-ssl.c:538,28'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:538,44'
              BranchSideFuncs:
                - ssl_wants_io
                - interpret_ssl_error
                - shutdown
                - stream_get_name
                - stream_report_content
            - BranchSide:      'lib/stream-ssl.c:543,38'
              BranchSideFuncs:
                - interpret_ssl_error
                - shutdown
                - stream_get_name
                - stream_report_content
        - Branch String:   'lib/stream-ssl.c:538,17'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:539,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:543,38'
              BranchSideFuncs:
                - interpret_ssl_error
                - shutdown
                - stream_get_name
                - stream_report_content
        - Branch String:   'lib/stream-ssl.c:550,20'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:551,41'
              BranchSideFuncs:
                - do_ca_cert_bootstrap
            - BranchSide:      'lib/stream-ssl.c:552,20'
              BranchSideFuncs:
                - SSL_get_servername
                - get_peer_common_name
                - stream_set_peer_id
                - free
                - vlog
                - SSL_get_verify_mode
                - vlog
        - Branch String:   'lib/stream-ssl.c:553,20'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:553,45'
              BranchSideFuncs:
                - SSL_get_verify_mode
                - SSL_get_servername
                - get_peer_common_name
                - stream_set_peer_id
                - free
                - vlog
                - vlog
            - BranchSide:      'lib/stream-ssl.c:569,17'
              BranchSideFuncs:
                - SSL_get_servername
                - get_peer_common_name
                - stream_set_peer_id
                - free
                - vlog
        - Branch String:   'lib/stream-ssl.c:552,20'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:564,13'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/stream-ssl.c:569,17'
              BranchSideFuncs:
                - SSL_get_servername
                - get_peer_common_name
                - stream_set_peer_id
                - free
                - vlog
        - Branch String:   'lib/stream-ssl.c:564,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:564,13'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/stream-ssl.c:566,13'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:570,17'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:571,17'
              BranchSideFuncs:
                - get_peer_common_name
                - stream_set_peer_id
                - free
                - vlog
            - BranchSide:      'lib/stream-ssl.c:574,45'
              BranchSideFuncs:
                - get_peer_common_name
                - stream_set_peer_id
                - free
        - Branch String:   'lib/stream-ssl.c:571,17'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:571,17'
              BranchSideFuncs:
                - vlog
                - get_peer_common_name
                - stream_set_peer_id
                - free
            - BranchSide:      'lib/stream-ssl.c:572,13'
              BranchSideFuncs:
                - get_peer_common_name
                - stream_set_peer_id
                - free
        - Branch String:   'lib/stream-ssl.c:576,17'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:577,36'
              BranchSideFuncs:
                - stream_set_peer_id
                - free
            - BranchSide:      'lib/stream-ssl.c:580,13'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-ssl.c:513,31'
          Dst:             ssl_stream_cast
        - Src:             'lib/stream-ssl.c:518,18'
          Dst:             check_connection_completion
        - Src:             'lib/stream-ssl.c:523,9'
          Dst:             setsockopt_tcp_nodelay
        - Src:             'lib/stream-ssl.c:530,28'
          Dst:             recv
        - Src:             'lib/stream-ssl.c:535,22'
          Dst:             SSL_connect
        - Src:             'lib/stream-ssl.c:535,47'
          Dst:             SSL_accept
        - Src:             'lib/stream-ssl.c:537,25'
          Dst:             SSL_get_error
        - Src:             'lib/stream-ssl.c:538,31'
          Dst:             ssl_wants_io
        - Src:             'lib/stream-ssl.c:543,17'
          Dst:             interpret_ssl_error
        - Src:             'lib/stream-ssl.c:545,17'
          Dst:             shutdown
        - Src:             'lib/stream-ssl.c:547,53'
          Dst:             stream_get_name
        - Src:             'lib/stream-ssl.c:546,17'
          Dst:             stream_report_content
        - Src:             'lib/stream-ssl.c:551,20'
          Dst:             do_ca_cert_bootstrap
        - Src:             'lib/stream-ssl.c:553,25'
          Dst:             SSL_get_verify_mode
        - Src:             'lib/stream-ssl.c:564,13'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:568,38'
          Dst:             SSL_get_servername
        - Src:             'lib/stream-ssl.c:571,17'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:574,24'
          Dst:             get_peer_common_name
        - Src:             'lib/stream-ssl.c:577,17'
          Dst:             stream_set_peer_id
        - Src:             'lib/stream-ssl.c:584,5'
          Dst:             abort
    - functionName:    ssl_recv
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 691
      functionLinenumberEnd: 717
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - stream
        - buffer
        - n
      BBCount:         11
      ICount:          112
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - SSL_get_error
        - SSL_get_state
        - SSL_read
        - interpret_ssl_error
        - ssl_stream_cast
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:701,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:702,9'
              BranchSideFuncs:
                - SSL_get_error
                - interpret_ssl_error
            - BranchSide:      'lib/stream-ssl.c:704,5'
              BranchSideFuncs:
                - SSL_get_error
                - interpret_ssl_error
        - Branch String:   'lib/stream-ssl.c:706,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:707,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:709,35'
              BranchSideFuncs:
                - SSL_get_error
                - interpret_ssl_error
        - Branch String:   'lib/stream-ssl.c:710,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:711,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:713,53'
              BranchSideFuncs:
                - interpret_ssl_error
      Callsites:
        - Src:             'lib/stream-ssl.c:692,31'
          Dst:             ssl_stream_cast
        - Src:             'lib/stream-ssl.c:699,17'
          Dst:             SSL_get_state
        - Src:             'lib/stream-ssl.c:700,11'
          Dst:             SSL_read
        - Src:             'lib/stream-ssl.c:701,22'
          Dst:             SSL_get_state
        - Src:             'lib/stream-ssl.c:709,21'
          Dst:             SSL_get_error
        - Src:             'lib/stream-ssl.c:713,21'
          Dst:             interpret_ssl_error
    - functionName:    ssl_send
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 758
      functionLinenumberEnd: 783
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - stream
        - buffer
        - n
      BBCount:         9
      ICount:          89
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_clone_data
        - ofpbuf_use_const
        - ssl_do_tx
        - ssl_stream_cast
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:761,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:762,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:767,32'
              BranchSideFuncs:
                - ofpbuf_use_const
                - ssl_do_tx
                - ofpbuf_clone_data
        - Branch String:   'lib/stream-ssl.c:770,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:772,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:776,49'
              BranchSideFuncs:
                - ofpbuf_clone_data
            - BranchSide:      'lib/stream-ssl.c:779,13'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-ssl.c:759,31'
          Dst:             ssl_stream_cast
        - Src:             'lib/stream-ssl.c:767,9'
          Dst:             ofpbuf_use_const
        - Src:             'lib/stream-ssl.c:769,17'
          Dst:             ssl_do_tx
        - Src:             'lib/stream-ssl.c:776,27'
          Dst:             ofpbuf_clone_data
    - functionName:    ssl_run
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 787
      functionLinenumberEnd: 793
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         8
      ICount:          43
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ssl_clear_txbuf
        - ssl_do_tx
        - ssl_stream_cast
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:790,21'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:790,34'
              BranchSideFuncs:
                - ssl_do_tx
                - ssl_clear_txbuf
            - BranchSide:      'lib/stream-ssl.c:790,21'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:790,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:790,9'
              BranchSideFuncs:
                - ssl_clear_txbuf
            - BranchSide:      'lib/stream-ssl.c:791,25'
              BranchSideFuncs:
                - ssl_clear_txbuf
      Callsites:
        - Src:             'lib/stream-ssl.c:788,31'
          Dst:             ssl_stream_cast
        - Src:             'lib/stream-ssl.c:790,24'
          Dst:             ssl_do_tx
        - Src:             'lib/stream-ssl.c:791,9'
          Dst:             ssl_clear_txbuf
    - functionName:    ssl_run_wait
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 797
      functionLinenumberEnd: 803
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - poll_fd_wait_at
        - ssl_stream_cast
        - want_to_poll_events
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:800,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:800,9'
              BranchSideFuncs:
                - want_to_poll_events
                - poll_fd_wait_at
            - BranchSide:      'lib/stream-ssl.c:801,9'
              BranchSideFuncs:
                - want_to_poll_events
                - poll_fd_wait_at
      Callsites:
        - Src:             'lib/stream-ssl.c:798,31'
          Dst:             ssl_stream_cast
        - Src:             'lib/stream-ssl.c:801,9'
          Dst:             want_to_poll_events
        - Src:             'lib/stream-ssl.c:801,9'
          Dst:             poll_fd_wait_at
    - functionName:    ssl_wait
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 807
      functionLinenumberEnd: 854
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - stream
        - wait
      BBCount:         21
      ICount:          114
      EdgeCount:       41
      CyclomaticComplexity: 22
      functionsReached:
        - SSL_want
        - abort
        - poll_fd_wait_at
        - poll_immediate_wake_at
        - ssl_stream_cast
        - stream_connect
        - want_to_poll_events
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:810,5'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:812,28'
              BranchSideFuncs:
                - stream_connect
                - SSL_want
                - want_to_poll_events
                - poll_fd_wait_at
                - poll_fd_wait_at
                - abort
                - poll_immediate_wake_at
            - BranchSide:      'lib/stream-ssl.c:834,13'
              BranchSideFuncs:
                - poll_immediate_wake_at
                - want_to_poll_events
                - poll_fd_wait_at
            - BranchSide:      'lib/stream-ssl.c:842,14'
              BranchSideFuncs:
                - poll_immediate_wake_at
            - BranchSide:      'lib/stream-ssl.c:852,9'
              BranchSideFuncs:
                - abort
        - Branch String:   'lib/stream-ssl.c:812,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:813,13'
              BranchSideFuncs:
                - poll_immediate_wake_at
            - BranchSide:      'lib/stream-ssl.c:815,21'
              BranchSideFuncs:
                - SSL_want
                - want_to_poll_events
                - poll_fd_wait_at
                - poll_fd_wait_at
                - abort
        - Branch String:   'lib/stream-ssl.c:815,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:817,17'
              BranchSideFuncs:
                - poll_fd_wait_at
            - BranchSide:      'lib/stream-ssl.c:823,17'
              BranchSideFuncs:
                - SSL_want
                - want_to_poll_events
                - poll_fd_wait_at
            - BranchSide:      'lib/stream-ssl.c:828,17'
              BranchSideFuncs:
                - abort
        - Branch String:   'lib/stream-ssl.c:834,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:835,13'
              BranchSideFuncs:
                - want_to_poll_events
                - poll_fd_wait_at
            - BranchSide:      'lib/stream-ssl.c:837,13'
              BranchSideFuncs:
                - poll_immediate_wake_at
        - Branch String:   'lib/stream-ssl.c:842,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:0,0'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:844,13'
              BranchSideFuncs:
                - poll_immediate_wake_at
      Callsites:
        - Src:             'lib/stream-ssl.c:808,31'
          Dst:             ssl_stream_cast
        - Src:             'lib/stream-ssl.c:812,13'
          Dst:             stream_connect
        - Src:             'lib/stream-ssl.c:813,13'
          Dst:             poll_immediate_wake_at
        - Src:             'lib/stream-ssl.c:817,17'
          Dst:             poll_fd_wait_at
        - Src:             'lib/stream-ssl.c:823,17'
          Dst:             SSL_want
        - Src:             'lib/stream-ssl.c:823,17'
          Dst:             want_to_poll_events
        - Src:             'lib/stream-ssl.c:823,17'
          Dst:             poll_fd_wait_at
        - Src:             'lib/stream-ssl.c:828,17'
          Dst:             abort
        - Src:             'lib/stream-ssl.c:835,13'
          Dst:             want_to_poll_events
        - Src:             'lib/stream-ssl.c:835,13'
          Dst:             poll_fd_wait_at
        - Src:             'lib/stream-ssl.c:837,13'
          Dst:             poll_immediate_wake_at
        - Src:             'lib/stream-ssl.c:844,13'
          Dst:             poll_immediate_wake_at
        - Src:             'lib/stream-ssl.c:852,9'
          Dst:             abort
    - functionName:    ssl_stream_cast
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 332
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_assert_class
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:333,5'
          Dst:             stream_assert_class
    - functionName:    SSL_want
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    want_to_poll_events
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - want
      BBCount:         8
      ICount:          40
      EdgeCount:       13
      CyclomaticComplexity: 7
      functionsReached:
        - abort
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:213,5'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:215,9'
              BranchSideFuncs:
                - abort
            - BranchSide:      'lib/stream-ssl.c:218,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:221,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:224,9'
              BranchSideFuncs:
                - abort
      Callsites:
        - Src:             'lib/stream-ssl.c:215,9'
          Dst:             abort
        - Src:             'lib/stream-ssl.c:224,9'
          Dst:             abort
    - functionName:    stream_assert_class
      functionSourceFile: '/src/openvswitch/lib/stream-provider.h'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
        - class
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_do_tx
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 728
      functionLinenumberEnd: 754
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         20
      ICount:          143
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - SSL_get_error
        - SSL_get_state
        - SSL_write
        - interpret_ssl_error
        - ofpbuf_pull
        - ssl_stream_cast
        - vlog_rate_limit
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:734,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:735,13'
              BranchSideFuncs:
                - SSL_get_error
                - interpret_ssl_error
                - vlog_rate_limit
                - ofpbuf_pull.2961
                - SSL_get_state
                - SSL_write
                - SSL_get_state
            - BranchSide:      'lib/stream-ssl.c:737,9'
              BranchSideFuncs:
                - SSL_get_error
                - interpret_ssl_error
                - vlog_rate_limit
                - ofpbuf_pull.2961
                - SSL_get_state
                - SSL_write
                - SSL_get_state
        - Branch String:   'lib/stream-ssl.c:738,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:739,25'
              BranchSideFuncs:
                - ofpbuf_pull.2961
                - SSL_get_state
                - SSL_write
                - SSL_get_state
                - SSL_get_error
                - interpret_ssl_error
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:744,43'
              BranchSideFuncs:
                - SSL_get_error
                - interpret_ssl_error
                - vlog_rate_limit
        - Branch String:   'lib/stream-ssl.c:740,17'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:741,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:743,9'
              BranchSideFuncs:
                - SSL_get_state
                - SSL_write
                - SSL_get_state
                - SSL_get_error
                - interpret_ssl_error
                - vlog_rate_limit
                - ofpbuf_pull.2961
        - Branch String:   'lib/stream-ssl.c:745,17'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:746,17'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:749,57'
              BranchSideFuncs:
                - interpret_ssl_error
        - Branch String:   'lib/stream-ssl.c:746,17'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:746,17'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:747,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-ssl.c:729,31'
          Dst:             ssl_stream_cast
        - Src:             'lib/stream-ssl.c:732,25'
          Dst:             SSL_get_state
        - Src:             'lib/stream-ssl.c:733,19'
          Dst:             SSL_write
        - Src:             'lib/stream-ssl.c:734,26'
          Dst:             SSL_get_state
        - Src:             'lib/stream-ssl.c:739,13'
          Dst:             ofpbuf_pull
        - Src:             'lib/stream-ssl.c:744,29'
          Dst:             SSL_get_error
        - Src:             'lib/stream-ssl.c:746,17'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:749,24'
          Dst:             interpret_ssl_error
    - functionName:    ssl_clear_txbuf
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 724
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - sslv
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ofpbuf_delete
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:722,5'
          Dst:             ofpbuf_delete
    - functionName:    ofpbuf_delete
      functionSourceFile: '/src/openvswitch/./include/openvswitch/ofpbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ofpbuf_uninit
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/ofpbuf.h:173,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/ofpbuf.h:173,9'
              BranchSideFuncs:
                - ofpbuf_uninit
                - free
            - BranchSide:      './include/openvswitch/ofpbuf.h:174,23'
              BranchSideFuncs:
                - ofpbuf_uninit
                - free
      Callsites:
        - Src:             './include/openvswitch/ofpbuf.h:174,9'
          Dst:             ofpbuf_uninit
    - functionName:    SSL_get_state
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_write
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ofpbuf_pull
      functionSourceFile: '/src/openvswitch/./include/openvswitch/ofpbuf.h'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - size
      BBCount:         4
      ICount:          60
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/ofpbuf.h:262,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/ofpbuf.h:263,16'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/ofpbuf.h:266,22'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    SSL_get_error
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    interpret_ssl_error
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 625
      functionLinenumberEnd: 687
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - function
        - ret
        - error
        - want
      BBCount:         64
      ICount:          305
      EdgeCount:       74
      CyclomaticComplexity: 12
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - __errno_location
        - interpret_queued_ssl_error
        - ovs_strerror
        - vlog_rate_limit
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:628,5'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:630,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:634,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:638,10'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:642,10'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:646,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:650,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:654,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:659,28'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog_rate_limit
                - vlog_rate_limit
                - __errno_location
                - ovs_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:679,36'
              BranchSideFuncs:
                - interpret_queued_ssl_error
            - BranchSide:      'lib/stream-ssl.c:683,9'
              BranchSideFuncs:
                - vlog_rate_limit
        - Branch String:   'lib/stream-ssl.c:630,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:630,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:631,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:634,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:634,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:635,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:646,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:646,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:647,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:650,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:650,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:651,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:654,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:654,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:656,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:660,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:661,17'
              BranchSideFuncs:
                - vlog_rate_limit
                - __errno_location
                - ovs_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:672,13'
              BranchSideFuncs:
                - ERR_error_string
                - vlog_rate_limit
        - Branch String:   'lib/stream-ssl.c:661,17'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:662,30'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:667,17'
              BranchSideFuncs:
                - vlog_rate_limit
        - Branch String:   'lib/stream-ssl.c:663,17'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:663,17'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:665,24'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:667,17'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:667,17'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:669,17'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:672,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:672,13'
              BranchSideFuncs:
                - ERR_error_string
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:674,13'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:683,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:683,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:684,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-ssl.c:630,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:634,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:646,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:650,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:654,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:659,28'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:662,30'
          Dst:             __errno_location
        - Src:             'lib/stream-ssl.c:663,17'
          Dst:             ovs_strerror
        - Src:             'lib/stream-ssl.c:663,17'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:667,17'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:672,13'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:672,13'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:679,9'
          Dst:             interpret_queued_ssl_error
        - Src:             'lib/stream-ssl.c:683,9'
          Dst:             vlog_rate_limit
    - functionName:    interpret_queued_ssl_error
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 620
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - function
      BBCount:         16
      ICount:          76
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - vlog_rate_limit
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:614,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:615,9'
              BranchSideFuncs:
                - ERR_error_string
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:618,9'
              BranchSideFuncs:
                - vlog_rate_limit
        - Branch String:   'lib/stream-ssl.c:615,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:615,9'
              BranchSideFuncs:
                - ERR_error_string
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:617,5'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:618,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:0,0'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:618,9'
              BranchSideFuncs:
                - vlog_rate_limit
      Callsites:
        - Src:             'lib/stream-ssl.c:613,24'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:615,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:615,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:618,9'
          Dst:             vlog_rate_limit
    - functionName:    SSL_read
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_connect
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_accept
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_wants_io
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 990
      functionLinenumberEnd: 992
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ssl_error
      BBCount:         4
      ICount:          23
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:992,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:992,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:992,16'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    shutdown
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    do_ca_cert_bootstrap
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         81
      ICount:          426
      EdgeCount:       102
      CyclomaticComplexity: 23
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - PEM_write_X509
        - SSL_CTX_add_client_CA
        - SSL_CTX_load_verify_locations
        - SSL_CTX_set_cert_store
        - SSL_get_peer_cert_chain
        - X509_STORE_new
        - X509_check_issued
        - X509_verify_cert_error_string
        - __errno_location
        - fclose
        - fdopen
        - log_ca_cert
        - open
        - ovs_strerror
        - sk_X509_num
        - sk_X509_value
        - ssl_stream_cast
        - stream_ssl_set_ca_cert_file__
        - unlink
        - vlog
        - vlog_rate_limit
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:394,16'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:394,32'
              BranchSideFuncs:
                - sk_X509_num
                - vlog
                - sk_X509_num
                - sk_X509_value
                - X509_check_issued
                - open
                - fdopen
                - __errno_location
                - unlink
                - ovs_strerror
                - vlog
                - PEM_write_X509
                - fclose
                - unlink
                - ERR_get_error
                - ERR_error_string
                - vlog
                - fclose
                - log_ca_cert
                - SSL_CTX_add_client_CA
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - vlog
                - __errno_location
                - unlink
                - ovs_strerror
                - vlog
                - __errno_location
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
                - stream_ssl_set_ca_cert_file__
                - vlog_rate_limit
                - sk_X509_num
                - vlog
                - X509_verify_cert_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:395,9'
              BranchSideFuncs:
                - vlog
        - Branch String:   'lib/stream-ssl.c:394,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:395,9'
              BranchSideFuncs:
                - sk_X509_num
                - sk_X509_value
                - X509_check_issued
                - open
                - fdopen
                - __errno_location
                - unlink
                - ovs_strerror
                - vlog
                - PEM_write_X509
                - fclose
                - unlink
                - ERR_get_error
                - ERR_error_string
                - vlog
                - fclose
                - log_ca_cert
                - SSL_CTX_add_client_CA
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - vlog
                - __errno_location
                - unlink
                - ovs_strerror
                - vlog
                - __errno_location
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
                - stream_ssl_set_ca_cert_file__
                - vlog_rate_limit
                - sk_X509_num
                - vlog
                - X509_verify_cert_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:399,26'
              BranchSideFuncs:
                - sk_X509_num
                - sk_X509_value
                - X509_check_issued
                - open
                - fdopen
                - __errno_location
                - unlink
                - ovs_strerror
                - vlog
                - PEM_write_X509
                - fclose
                - unlink
                - ERR_get_error
                - ERR_error_string
                - vlog
                - fclose
                - log_ca_cert
                - SSL_CTX_add_client_CA
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - vlog
                - __errno_location
                - unlink
                - ovs_strerror
                - vlog
                - __errno_location
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
                - stream_ssl_set_ca_cert_file__
                - vlog_rate_limit
                - sk_X509_num
                - vlog
                - X509_verify_cert_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:395,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:395,9'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/stream-ssl.c:397,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:404,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:405,9'
              BranchSideFuncs:
                - sk_X509_num
                - vlog
                - X509_verify_cert_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:415,23'
              BranchSideFuncs:
                - open
                - fdopen
                - __errno_location
                - unlink
                - ovs_strerror
                - vlog
                - PEM_write_X509
                - fclose
                - unlink
                - ERR_get_error
                - ERR_error_string
                - vlog
                - fclose
                - log_ca_cert
                - SSL_CTX_add_client_CA
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - vlog
                - __errno_location
                - unlink
                - ovs_strerror
                - vlog
                - __errno_location
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
                - stream_ssl_set_ca_cert_file__
                - vlog_rate_limit
        - Branch String:   'lib/stream-ssl.c:405,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:405,9'
              BranchSideFuncs:
                - X509_verify_cert_error_string
                - vlog
                - sk_X509_num
                - vlog
            - BranchSide:      'lib/stream-ssl.c:408,25'
              BranchSideFuncs:
                - sk_X509_num
                - vlog
        - Branch String:   'lib/stream-ssl.c:408,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:409,13'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/stream-ssl.c:412,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:409,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:409,13'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/stream-ssl.c:411,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:416,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:417,13'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
                - stream_ssl_set_ca_cert_file__
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:429,19'
              BranchSideFuncs:
                - fdopen
                - __errno_location
                - unlink
                - ovs_strerror
                - vlog
                - PEM_write_X509
                - fclose
                - unlink
                - ERR_get_error
                - ERR_error_string
                - vlog
                - fclose
                - log_ca_cert
                - SSL_CTX_add_client_CA
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - vlog
                - __errno_location
                - unlink
                - ovs_strerror
                - vlog
        - Branch String:   'lib/stream-ssl.c:417,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:418,13'
              BranchSideFuncs:
                - stream_ssl_set_ca_cert_file__
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:423,13'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/stream-ssl.c:418,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:418,13'
              BranchSideFuncs:
                - vlog_rate_limit
                - stream_ssl_set_ca_cert_file__
            - BranchSide:      'lib/stream-ssl.c:420,51'
              BranchSideFuncs:
                - stream_ssl_set_ca_cert_file__
        - Branch String:   'lib/stream-ssl.c:423,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:423,13'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
            - BranchSide:      'lib/stream-ssl.c:425,20'
              BranchSideFuncs:
                - __errno_location
        - Branch String:   'lib/stream-ssl.c:430,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:431,17'
              BranchSideFuncs:
                - PEM_write_X509
                - fclose
                - unlink
                - ERR_get_error
                - ERR_error_string
                - vlog
                - fclose
                - log_ca_cert
                - SSL_CTX_add_client_CA
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - vlog
                - __errno_location
                - unlink
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/stream-ssl.c:438,25'
              BranchSideFuncs:
                - PEM_write_X509
                - fclose
                - unlink
                - ERR_get_error
                - ERR_error_string
                - vlog
                - fclose
                - log_ca_cert
                - SSL_CTX_add_client_CA
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - vlog
                - __errno_location
                - unlink
                - ovs_strerror
                - vlog
        - Branch String:   'lib/stream-ssl.c:432,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:432,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
                - unlink
            - BranchSide:      'lib/stream-ssl.c:434,24'
              BranchSideFuncs:
                - unlink
        - Branch String:   'lib/stream-ssl.c:438,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:439,9'
              BranchSideFuncs:
                - fclose
                - log_ca_cert
                - SSL_CTX_add_client_CA
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - vlog
                - __errno_location
                - unlink
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/stream-ssl.c:447,16'
              BranchSideFuncs:
                - fclose
                - log_ca_cert
                - SSL_CTX_add_client_CA
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - vlog
                - __errno_location
                - unlink
                - ovs_strerror
                - vlog
        - Branch String:   'lib/stream-ssl.c:439,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:439,9'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
                - fclose
                - unlink
            - BranchSide:      'lib/stream-ssl.c:442,16'
              BranchSideFuncs:
                - fclose
                - unlink
        - Branch String:   'lib/stream-ssl.c:447,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:448,17'
              BranchSideFuncs:
                - __errno_location
                - unlink
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/stream-ssl.c:455,5'
              BranchSideFuncs:
                - log_ca_cert
                - SSL_CTX_add_client_CA
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
                - vlog
        - Branch String:   'lib/stream-ssl.c:449,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:449,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
                - unlink
            - BranchSide:      'lib/stream-ssl.c:451,24'
              BranchSideFuncs:
                - unlink
        - Branch String:   'lib/stream-ssl.c:455,5'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:455,5'
              BranchSideFuncs:
                - vlog
                - log_ca_cert
                - SSL_CTX_add_client_CA
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:456,25'
              BranchSideFuncs:
                - log_ca_cert
                - SSL_CTX_add_client_CA
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - vlog
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:464,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:465,9'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:469,5'
              BranchSideFuncs:
                - vlog
        - Branch String:   'lib/stream-ssl.c:465,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:465,9'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:467,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:469,5'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:469,5'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/stream-ssl.c:470,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-ssl.c:386,31'
          Dst:             ssl_stream_cast
        - Src:             'lib/stream-ssl.c:393,13'
          Dst:             SSL_get_peer_cert_chain
        - Src:             'lib/stream-ssl.c:394,20'
          Dst:             sk_X509_num
        - Src:             'lib/stream-ssl.c:395,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:399,33'
          Dst:             sk_X509_num
        - Src:             'lib/stream-ssl.c:399,12'
          Dst:             sk_X509_value
        - Src:             'lib/stream-ssl.c:403,13'
          Dst:             X509_check_issued
        - Src:             'lib/stream-ssl.c:405,9'
          Dst:             X509_verify_cert_error_string
        - Src:             'lib/stream-ssl.c:405,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:408,13'
          Dst:             sk_X509_num
        - Src:             'lib/stream-ssl.c:409,13'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:415,10'
          Dst:             open
        - Src:             'lib/stream-ssl.c:417,13'
          Dst:             __errno_location
        - Src:             'lib/stream-ssl.c:418,13'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:420,13'
          Dst:             stream_ssl_set_ca_cert_file__
        - Src:             'lib/stream-ssl.c:423,13'
          Dst:             __errno_location
        - Src:             'lib/stream-ssl.c:423,13'
          Dst:             ovs_strerror
        - Src:             'lib/stream-ssl.c:423,13'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:425,20'
          Dst:             __errno_location
        - Src:             'lib/stream-ssl.c:429,12'
          Dst:             fdopen
        - Src:             'lib/stream-ssl.c:431,17'
          Dst:             __errno_location
        - Src:             'lib/stream-ssl.c:432,9'
          Dst:             ovs_strerror
        - Src:             'lib/stream-ssl.c:432,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:434,9'
          Dst:             unlink
        - Src:             'lib/stream-ssl.c:438,10'
          Dst:             PEM_write_X509
        - Src:             'lib/stream-ssl.c:439,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:439,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:439,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:442,9'
          Dst:             fclose
        - Src:             'lib/stream-ssl.c:443,9'
          Dst:             unlink
        - Src:             'lib/stream-ssl.c:447,9'
          Dst:             fclose
        - Src:             'lib/stream-ssl.c:448,17'
          Dst:             __errno_location
        - Src:             'lib/stream-ssl.c:449,9'
          Dst:             ovs_strerror
        - Src:             'lib/stream-ssl.c:449,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:451,9'
          Dst:             unlink
        - Src:             'lib/stream-ssl.c:455,5'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:456,5'
          Dst:             log_ca_cert
        - Src:             'lib/stream-ssl.c:461,5'
          Dst:             SSL_CTX_add_client_CA
        - Src:             'lib/stream-ssl.c:463,33'
          Dst:             X509_STORE_new
        - Src:             'lib/stream-ssl.c:463,5'
          Dst:             SSL_CTX_set_cert_store
        - Src:             'lib/stream-ssl.c:464,9'
          Dst:             SSL_CTX_load_verify_locations
        - Src:             'lib/stream-ssl.c:465,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:465,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:465,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:469,5'
          Dst:             vlog
    - functionName:    SSL_get_verify_mode
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_get_servername
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_peer_common_name
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 508
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - sslv
      BBCount:         13
      ICount:          88
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - ASN1_STRING_get0_data
        - SSL_get_peer_certificate
        - X509_NAME_ENTRY_get_data
        - X509_NAME_get_entry
        - X509_NAME_get_index_by_NID
        - X509_free
        - X509_get_subject_name
        - xstrdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:482,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:483,9'
              BranchSideFuncs:
                - X509_get_subject_name
                - X509_NAME_get_index_by_NID
                - X509_get_subject_name
                - X509_NAME_get_entry
                - X509_free
                - X509_NAME_ENTRY_get_data
                - ASN1_STRING_get0_data
                - xstrdup
            - BranchSide:      'lib/stream-ssl.c:486,69'
              BranchSideFuncs:
                - X509_get_subject_name
                - X509_NAME_get_index_by_NID
                - X509_get_subject_name
                - X509_NAME_get_entry
                - X509_free
                - X509_NAME_ENTRY_get_data
                - ASN1_STRING_get0_data
                - xstrdup
        - Branch String:   'lib/stream-ssl.c:488,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:489,9'
              BranchSideFuncs:
                - X509_free
            - BranchSide:      'lib/stream-ssl.c:493,31'
              BranchSideFuncs:
                - X509_get_subject_name
                - X509_NAME_get_entry
                - X509_free
                - X509_NAME_ENTRY_get_data
                - ASN1_STRING_get0_data
                - xstrdup
        - Branch String:   'lib/stream-ssl.c:494,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:495,9'
              BranchSideFuncs:
                - X509_NAME_ENTRY_get_data
                - X509_free
                - ASN1_STRING_get0_data
                - xstrdup
            - BranchSide:      'lib/stream-ssl.c:498,53'
              BranchSideFuncs:
                - X509_NAME_ENTRY_get_data
                - X509_free
                - ASN1_STRING_get0_data
                - xstrdup
        - Branch String:   'lib/stream-ssl.c:499,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:500,9'
              BranchSideFuncs:
                - ASN1_STRING_get0_data
                - xstrdup
                - X509_free
            - BranchSide:      'lib/stream-ssl.c:503,62'
              BranchSideFuncs:
                - ASN1_STRING_get0_data
                - xstrdup
                - X509_free
      Callsites:
        - Src:             'lib/stream-ssl.c:478,23'
          Dst:             SSL_get_peer_certificate
        - Src:             'lib/stream-ssl.c:486,47'
          Dst:             X509_get_subject_name
        - Src:             'lib/stream-ssl.c:486,20'
          Dst:             X509_NAME_get_index_by_NID
        - Src:             'lib/stream-ssl.c:493,9'
          Dst:             X509_get_subject_name
        - Src:             'lib/stream-ssl.c:492,33'
          Dst:             X509_NAME_get_entry
        - Src:             'lib/stream-ssl.c:498,28'
          Dst:             X509_NAME_ENTRY_get_data
        - Src:             'lib/stream-ssl.c:503,40'
          Dst:             ASN1_STRING_get0_data
        - Src:             'lib/stream-ssl.c:503,17'
          Dst:             xstrdup
        - Src:             'lib/stream-ssl.c:506,5'
          Dst:             X509_free
    - functionName:    SSL_get_peer_certificate
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_get_subject_name
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_NAME_get_index_by_NID
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_NAME_get_entry
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_NAME_ENTRY_get_data
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ASN1_STRING_get0_data
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_get_peer_cert_chain
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sk_X509_num
      functionSourceFile: '/usr/include/openssl/x509.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - sk
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_num
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509.h:99,1'
          Dst:             OPENSSL_sk_num
    - functionName:    sk_X509_value
      functionSourceFile: '/usr/include/openssl/x509.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - sk
        - idx
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509.h:99,1'
          Dst:             OPENSSL_sk_value
    - functionName:    X509_check_issued
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_verify_cert_error_string
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_ssl_set_ca_cert_file__
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1473
      functionLinenumberEnd: 1508
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - bool
        - bool
      constantsTouched: []
      argNames:
        - file_name
        - bootstrap
        - force
      BBCount:         40
      ICount:          184
      EdgeCount:       51
      CyclomaticComplexity: 13
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - SSL_CTX_load_verify_locations
        - SSL_CTX_set_cert_store
        - SSL_CTX_set_client_CA_list
        - SSL_load_client_CA_file
        - X509_STORE_new
        - __errno_location
        - stat
        - strcmp
        - update_ssl_config
        - vlog
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1476,49'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1476,53'
              BranchSideFuncs:
                - strcmp
                - vlog
                - SSL_load_client_CA_file
                - ERR_get_error
                - ERR_error_string
                - vlog
                - SSL_CTX_set_client_CA_list
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - ERR_get_error
                - ERR_error_string
                - vlog
                - stat
                - __errno_location
            - BranchSide:      'lib/stream-ssl.c:1480,17'
              BranchSideFuncs:
                - strcmp
                - vlog
                - SSL_load_client_CA_file
                - ERR_get_error
                - ERR_error_string
                - vlog
                - SSL_CTX_set_client_CA_list
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - ERR_get_error
                - ERR_error_string
                - vlog
                - stat
                - __errno_location
        - Branch String:   'lib/stream-ssl.c:1476,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1477,9'
              BranchSideFuncs:
                - strcmp
                - vlog
                - SSL_load_client_CA_file
                - ERR_get_error
                - ERR_error_string
                - vlog
                - SSL_CTX_set_client_CA_list
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - ERR_get_error
                - ERR_error_string
                - vlog
                - stat
                - __errno_location
            - BranchSide:      'lib/stream-ssl.c:1480,17'
              BranchSideFuncs:
                - strcmp
                - vlog
                - SSL_load_client_CA_file
                - ERR_get_error
                - ERR_error_string
                - vlog
                - SSL_CTX_set_client_CA_list
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - ERR_get_error
                - ERR_error_string
                - vlog
                - stat
                - __errno_location
        - Branch String:   'lib/stream-ssl.c:1480,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1481,26'
              BranchSideFuncs:
                - SSL_load_client_CA_file
                - ERR_get_error
                - ERR_error_string
                - vlog
                - SSL_CTX_set_client_CA_list
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - ERR_get_error
                - ERR_error_string
                - vlog
                - stat
                - __errno_location
            - BranchSide:      'lib/stream-ssl.c:1484,16'
              BranchSideFuncs:
                - SSL_load_client_CA_file
                - ERR_get_error
                - ERR_error_string
                - vlog
                - SSL_CTX_set_client_CA_list
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - ERR_get_error
                - ERR_error_string
                - vlog
                - stat
                - __errno_location
        - Branch String:   'lib/stream-ssl.c:1482,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1482,9'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1484,5'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:1484,26'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1484,34'
              BranchSideFuncs:
                - stat
                - SSL_load_client_CA_file
                - ERR_get_error
                - ERR_error_string
                - vlog
                - SSL_CTX_set_client_CA_list
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - ERR_get_error
                - ERR_error_string
                - vlog
                - __errno_location
            - BranchSide:      'lib/stream-ssl.c:1487,67'
              BranchSideFuncs:
                - SSL_load_client_CA_file
                - ERR_get_error
                - ERR_error_string
                - vlog
                - SSL_CTX_set_client_CA_list
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:1484,49'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1484,52'
              BranchSideFuncs:
                - __errno_location
                - SSL_load_client_CA_file
                - ERR_get_error
                - ERR_error_string
                - vlog
                - SSL_CTX_set_client_CA_list
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1487,67'
              BranchSideFuncs:
                - SSL_load_client_CA_file
                - ERR_get_error
                - ERR_error_string
                - vlog
                - SSL_CTX_set_client_CA_list
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:1484,16'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1485,27'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1487,67'
              BranchSideFuncs:
                - SSL_load_client_CA_file
                - ERR_get_error
                - ERR_error_string
                - vlog
                - SSL_CTX_set_client_CA_list
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:1488,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1491,40'
              BranchSideFuncs:
                - SSL_CTX_set_client_CA_list
                - X509_STORE_new
                - SSL_CTX_set_cert_store
                - SSL_CTX_load_verify_locations
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1503,13'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:1496,17'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1497,17'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1501,31'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:1497,17'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1497,17'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1499,17'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:1503,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:0,0'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1503,13'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
      Callsites:
        - Src:             'lib/stream-ssl.c:1476,10'
          Dst:             update_ssl_config
        - Src:             'lib/stream-ssl.c:1480,10'
          Dst:             strcmp
        - Src:             'lib/stream-ssl.c:1482,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1484,29'
          Dst:             stat
        - Src:             'lib/stream-ssl.c:1484,52'
          Dst:             __errno_location
        - Src:             'lib/stream-ssl.c:1487,43'
          Dst:             SSL_load_client_CA_file
        - Src:             'lib/stream-ssl.c:1491,13'
          Dst:             SSL_CTX_set_client_CA_list
        - Src:             'lib/stream-ssl.c:1495,41'
          Dst:             X509_STORE_new
        - Src:             'lib/stream-ssl.c:1495,13'
          Dst:             SSL_CTX_set_cert_store
        - Src:             'lib/stream-ssl.c:1496,17'
          Dst:             SSL_CTX_load_verify_locations
        - Src:             'lib/stream-ssl.c:1497,17'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:1497,17'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:1497,17'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1503,13'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:1503,13'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:1503,13'
          Dst:             vlog
    - functionName:    fdopen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PEM_write_X509
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log_ca_cert
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1445
      functionLinenumberEnd: 1468
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - file_name
        - cert
      BBCount:         21
      ICount:          120
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - CRYPTO_free
        - EVP_sha1
        - X509_NAME_oneline
        - X509_digest
        - X509_get_subject_name
        - ds_cstr
        - ds_destroy
        - ds_init
        - ds_put_char
        - ds_put_cstr
        - ds_put_format
        - vlog
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1452,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1453,9'
              BranchSideFuncs:
                - X509_get_subject_name
                - X509_NAME_oneline
                - CRYPTO_free
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_format
                - ds_put_char.2993
            - BranchSide:      'lib/stream-ssl.c:1456,16'
              BranchSideFuncs:
                - X509_get_subject_name
                - X509_NAME_oneline
                - CRYPTO_free
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_format
                - ds_put_char.2993
        - Branch String:   'lib/stream-ssl.c:1456,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:0,0'
              BranchSideFuncs:
                - ds_put_format
                - X509_get_subject_name
                - X509_NAME_oneline
                - CRYPTO_free
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_char.2993
            - BranchSide:      'lib/stream-ssl.c:1457,17'
              BranchSideFuncs:
                - ds_put_format
                - X509_get_subject_name
                - X509_NAME_oneline
                - CRYPTO_free
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_char.2993
        - Branch String:   'lib/stream-ssl.c:1457,17'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1458,17'
              BranchSideFuncs:
                - ds_put_char.2993
                - ds_put_format
                - X509_get_subject_name
                - X509_NAME_oneline
                - CRYPTO_free
                - ds_destroy
                - ds_cstr
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1460,47'
              BranchSideFuncs:
                - ds_put_format
                - X509_get_subject_name
                - X509_NAME_oneline
                - CRYPTO_free
                - ds_destroy
                - ds_cstr
                - vlog
                - ds_put_char.2993
        - Branch String:   'lib/stream-ssl.c:1464,5'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1464,5'
              BranchSideFuncs:
                - ds_cstr
                - vlog
                - CRYPTO_free
                - ds_destroy
            - BranchSide:      'lib/stream-ssl.c:1464,5'
              BranchSideFuncs:
                - CRYPTO_free
                - ds_destroy
        - Branch String:   'lib/stream-ssl.c:1464,5'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1464,5'
              BranchSideFuncs:
                - ds_cstr
                - vlog
                - CRYPTO_free
                - ds_destroy
            - BranchSide:      'lib/stream-ssl.c:1464,5'
              BranchSideFuncs:
                - ds_cstr
                - vlog
                - CRYPTO_free
                - ds_destroy
      Callsites:
        - Src:             'lib/stream-ssl.c:1451,5'
          Dst:             ds_init
        - Src:             'lib/stream-ssl.c:1452,28'
          Dst:             EVP_sha1
        - Src:             'lib/stream-ssl.c:1452,10'
          Dst:             X509_digest
        - Src:             'lib/stream-ssl.c:1453,9'
          Dst:             ds_put_cstr
        - Src:             'lib/stream-ssl.c:1458,17'
          Dst:             ds_put_char
        - Src:             'lib/stream-ssl.c:1460,13'
          Dst:             ds_put_format
        - Src:             'lib/stream-ssl.c:1463,33'
          Dst:             X509_get_subject_name
        - Src:             'lib/stream-ssl.c:1463,15'
          Dst:             X509_NAME_oneline
        - Src:             'lib/stream-ssl.c:1464,5'
          Dst:             ds_cstr
        - Src:             'lib/stream-ssl.c:1464,5'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1466,5'
          Dst:             CRYPTO_free
        - Src:             'lib/stream-ssl.c:1467,5'
          Dst:             ds_destroy
    - functionName:    SSL_CTX_add_client_CA
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_set_cert_store
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_load_verify_locations
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_sha1
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_digest
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ds_put_char
      functionSourceFile: '/src/openvswitch/./include/openvswitch/dynamic-string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ds
        - c
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_put_char__
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/dynamic-string.h:95,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/dynamic-string.h:96,36'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/dynamic-string.h:99,23'
              BranchSideFuncs:
                - ds_put_char__
      Callsites:
        - Src:             './include/openvswitch/dynamic-string.h:99,9'
          Dst:             ds_put_char__
    - functionName:    X509_NAME_oneline
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CRYPTO_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    update_ssl_config
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1122
      functionLinenumberEnd: 1151
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - config
        - file_name
      BBCount:         31
      ICount:          166
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - get_mtime
        - ovs_strerror
        - ssl_init
        - strcmp
        - vlog_rate_limit
        - xstrdup
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1126,20'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1126,24'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1127,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:1126,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1127,9'
              BranchSideFuncs:
                - get_mtime
                - free
                - xstrdup
                - strcmp
                - ovs_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:1132,23'
              BranchSideFuncs:
                - get_mtime
                - free
                - xstrdup
                - strcmp
                - ovs_strerror
                - vlog_rate_limit
        - Branch String:   'lib/stream-ssl.c:1133,15'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1133,18'
              BranchSideFuncs:
                - free
                - xstrdup
                - strcmp
                - ovs_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:1137,9'
              BranchSideFuncs:
                - free
                - xstrdup
                - strcmp
        - Branch String:   'lib/stream-ssl.c:1133,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1134,9'
              BranchSideFuncs:
                - free
                - xstrdup
                - strcmp
                - ovs_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/stream-ssl.c:1137,9'
              BranchSideFuncs:
                - free
                - xstrdup
                - strcmp
        - Branch String:   'lib/stream-ssl.c:1134,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1134,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_rate_limit
                - free
                - xstrdup
                - strcmp
            - BranchSide:      'lib/stream-ssl.c:1136,5'
              BranchSideFuncs:
                - free
                - xstrdup
                - strcmp
        - Branch String:   'lib/stream-ssl.c:1138,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1138,20'
              BranchSideFuncs:
                - strcmp
                - free
                - xstrdup
            - BranchSide:      'lib/stream-ssl.c:1145,5'
              BranchSideFuncs:
                - free
                - xstrdup
        - Branch String:   'lib/stream-ssl.c:1139,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1139,18'
              BranchSideFuncs:
                - free
                - xstrdup
            - BranchSide:      'lib/stream-ssl.c:1145,5'
              BranchSideFuncs:
                - free
                - xstrdup
        - Branch String:   'lib/stream-ssl.c:1140,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1140,18'
              BranchSideFuncs:
                - free
                - xstrdup
            - BranchSide:      'lib/stream-ssl.c:1145,5'
              BranchSideFuncs:
                - free
                - xstrdup
        - Branch String:   'lib/stream-ssl.c:1137,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1141,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1145,5'
              BranchSideFuncs:
                - free
                - xstrdup
        - Branch String:   'lib/stream-ssl.c:1146,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1147,14'
              BranchSideFuncs:
                - free
                - xstrdup
            - BranchSide:      'lib/stream-ssl.c:1150,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-ssl.c:1126,9'
          Dst:             ssl_init
        - Src:             'lib/stream-ssl.c:1132,13'
          Dst:             get_mtime
        - Src:             'lib/stream-ssl.c:1134,9'
          Dst:             ovs_strerror
        - Src:             'lib/stream-ssl.c:1134,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-ssl.c:1138,13'
          Dst:             strcmp
        - Src:             'lib/stream-ssl.c:1148,29'
          Dst:             xstrdup
    - functionName:    SSL_load_client_CA_file
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_set_client_CA_list
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_init
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 997
      functionLinenumberEnd: 1003
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - do_ssl_init
      functionUses:    7
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:999,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:999,9'
              BranchSideFuncs:
                - do_ssl_init
            - BranchSide:      'lib/stream-ssl.c:999,9'
              BranchSideFuncs:
                - do_ssl_init
        - Branch String:   'lib/stream-ssl.c:999,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:999,9'
              BranchSideFuncs:
                - do_ssl_init
            - BranchSide:      'lib/stream-ssl.c:1000,23'
              BranchSideFuncs:
                - do_ssl_init
      Callsites:
        - Src:             'lib/stream-ssl.c:1000,23'
          Dst:             do_ssl_init
    - functionName:    OPENSSL_sk_value
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    OPENSSL_sk_num
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_shutdown
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ERR_clear_error
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_server_name
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - suffix_
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - inet_parse_host_port_tokens
        - ip_parse
        - ipv6_parse
        - xstrdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:353,48'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:353,26'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/stream-ssl.c:353,62'
              BranchSideFuncs:
                - ipv6_parse
                - xstrdup
                - free
        - Branch String:   'lib/stream-ssl.c:353,26'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:353,26'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/stream-ssl.c:354,43'
              BranchSideFuncs:
                - xstrdup
                - free
      Callsites:
        - Src:             'lib/stream-ssl.c:346,20'
          Dst:             xstrdup
        - Src:             'lib/stream-ssl.c:349,5'
          Dst:             inet_parse_host_port_tokens
        - Src:             'lib/stream-ssl.c:353,26'
          Dst:             ip_parse
        - Src:             'lib/stream-ssl.c:353,51'
          Dst:             ipv6_parse
        - Src:             'lib/stream-ssl.c:354,35'
          Dst:             xstrdup
    - functionName:    stream_ssl_set_ca_cert_file
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1518
      functionLinenumberEnd: 1520
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - file_name
        - bootstrap
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_ssl_set_ca_cert_file__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-ssl.c:1519,5'
          Dst:             stream_ssl_set_ca_cert_file__
    - functionName:    read_cert_file
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1361
      functionLinenumberEnd: 1413
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - file_name
        - certs
        - n_certs
      BBCount:         33
      ICount:          205
      EdgeCount:       41
      CyclomaticComplexity: 10
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - PEM_read_X509
        - X509_free
        - __ctype_b_loc
        - __errno_location
        - fclose
        - fopen
        - getc
        - ovs_strerror
        - ungetc
        - vlog
        - x2nrealloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1369,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1370,9'
              BranchSideFuncs:
                - PEM_read_X509
                - free
                - fclose
                - X509_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - getc
                - __ctype_b_loc
                - ungetc
                - fclose
                - x2nrealloc
            - BranchSide:      'lib/stream-ssl.c:1375,5'
              BranchSideFuncs:
                - PEM_read_X509
                - free
                - fclose
                - X509_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - getc
                - __ctype_b_loc
                - ungetc
                - fclose
                - x2nrealloc
        - Branch String:   'lib/stream-ssl.c:1370,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1370,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
            - BranchSide:      'lib/stream-ssl.c:1372,16'
              BranchSideFuncs:
                - __errno_location
        - Branch String:   'lib/stream-ssl.c:1381,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1384,13'
              BranchSideFuncs:
                - getc
                - __ctype_b_loc
                - ungetc
                - PEM_read_X509
                - free
                - fclose
                - X509_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - fclose
                - x2nrealloc
            - BranchSide:      'lib/stream-ssl.c:1397,14'
              BranchSideFuncs:
                - getc
                - __ctype_b_loc
                - ungetc
                - PEM_read_X509
                - free
                - fclose
                - X509_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - fclose
                - x2nrealloc
        - Branch String:   'lib/stream-ssl.c:1384,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1384,13'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
                - free
                - fclose
                - X509_free
            - BranchSide:      'lib/stream-ssl.c:1386,20'
              BranchSideFuncs:
                - free
                - fclose
                - X509_free
        - Branch String:   'lib/stream-ssl.c:1386,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1387,29'
              BranchSideFuncs:
                - X509_free
                - free
                - fclose
            - BranchSide:      'lib/stream-ssl.c:1389,19'
              BranchSideFuncs:
                - free
                - fclose
        - Branch String:   'lib/stream-ssl.c:1397,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1398,34'
              BranchSideFuncs:
                - x2nrealloc
                - getc
                - __ctype_b_loc
                - ungetc
                - PEM_read_X509
                - free
                - fclose
                - X509_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - fclose
            - BranchSide:      'lib/stream-ssl.c:1400,34'
              BranchSideFuncs:
                - getc
                - __ctype_b_loc
                - ungetc
                - PEM_read_X509
                - free
                - fclose
                - X509_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - x2nrealloc
                - fclose
        - Branch String:   'lib/stream-ssl.c:1405,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1404,22'
              BranchSideFuncs:
                - getc
                - __ctype_b_loc
                - ungetc
                - PEM_read_X509
                - free
                - fclose
                - X509_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - x2nrealloc
                - fclose
            - BranchSide:      'lib/stream-ssl.c:1406,13'
              BranchSideFuncs:
                - ungetc
                - PEM_read_X509
                - free
                - fclose
                - X509_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - getc
                - __ctype_b_loc
                - x2nrealloc
                - fclose
        - Branch String:   'lib/stream-ssl.c:1406,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1407,13'
              BranchSideFuncs:
                - fclose
            - BranchSide:      'lib/stream-ssl.c:1409,16'
              BranchSideFuncs:
                - ungetc
                - PEM_read_X509
                - free
                - fclose
                - X509_free
                - ERR_get_error
                - ERR_error_string
                - vlog
                - getc
                - __ctype_b_loc
                - fclose
                - x2nrealloc
      Callsites:
        - Src:             'lib/stream-ssl.c:1368,12'
          Dst:             fopen
        - Src:             'lib/stream-ssl.c:1370,9'
          Dst:             __errno_location
        - Src:             'lib/stream-ssl.c:1370,9'
          Dst:             ovs_strerror
        - Src:             'lib/stream-ssl.c:1370,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1372,16'
          Dst:             __errno_location
        - Src:             'lib/stream-ssl.c:1380,16'
          Dst:             PEM_read_X509
        - Src:             'lib/stream-ssl.c:1384,13'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:1384,13'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:1384,13'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1387,17'
          Dst:             X509_free
        - Src:             'lib/stream-ssl.c:1392,13'
          Dst:             fclose
        - Src:             'lib/stream-ssl.c:1398,22'
          Dst:             x2nrealloc
        - Src:             'lib/stream-ssl.c:1404,17'
          Dst:             getc
        - Src:             'lib/stream-ssl.c:1405,18'
          Dst:             __ctype_b_loc
        - Src:             'lib/stream-ssl.c:1409,9'
          Dst:             ungetc
        - Src:             'lib/stream-ssl.c:1411,5'
          Dst:             fclose
    - functionName:    PEM_read_X509
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ungetc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_ssl_set_peer_ca_cert_file
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1422
      functionLinenumberEnd: 1440
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - file_name
      BBCount:         20
      ICount:          97
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - SSL_CTX_ctrl
        - read_cert_file
        - ssl_init
        - vlog
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1427,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1428,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1431,25'
              BranchSideFuncs:
                - read_cert_file
                - free
                - SSL_CTX_ctrl
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:1431,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1431,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1432,16'
              BranchSideFuncs:
                - free
                - SSL_CTX_ctrl
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:1432,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1433,17'
              BranchSideFuncs:
                - SSL_CTX_ctrl
                - free
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1438,14'
              BranchSideFuncs:
                - free
        - Branch String:   'lib/stream-ssl.c:1433,17'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1434,17'
              BranchSideFuncs:
                - free
                - SSL_CTX_ctrl
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1437,9'
              BranchSideFuncs:
                - free
                - SSL_CTX_ctrl
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:1434,17'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1434,17'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
                - free
                - SSL_CTX_ctrl
            - BranchSide:      'lib/stream-ssl.c:1436,13'
              BranchSideFuncs:
                - free
                - SSL_CTX_ctrl
                - ERR_get_error
                - ERR_error_string
                - vlog
      Callsites:
        - Src:             'lib/stream-ssl.c:1427,9'
          Dst:             ssl_init
        - Src:             'lib/stream-ssl.c:1431,10'
          Dst:             read_cert_file
        - Src:             'lib/stream-ssl.c:1433,17'
          Dst:             SSL_CTX_ctrl
        - Src:             'lib/stream-ssl.c:1434,17'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:1434,17'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:1434,17'
          Dst:             vlog
    - functionName:    bitmap_is_set
      functionSourceFile: '/src/openvswitch/lib/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - bitmap
        - offset
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - bitmap_bit__
        - bitmap_unit__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/bitmap.h:91,14'
          Dst:             bitmap_unit__
        - Src:             'lib/bitmap.h:91,46'
          Dst:             bitmap_bit__
    - functionName:    hmap_next
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_next__
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:430,13'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:431,15'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:432,27'
              BranchSideFuncs:
                - hmap_next__.2879
      Callsites:
        - Src:             './include/openvswitch/hmap.h:432,15'
          Dst:             hmap_next__
    - functionName:    hmap_first
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:417,12'
          Dst:             hmap_next__
    - functionName:    bitmap_set1
      functionSourceFile: '/src/openvswitch/lib/bitmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - bitmap
        - offset
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - bitmap_bit__
        - bitmap_unit__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/bitmap.h:97,39'
          Dst:             bitmap_bit__
        - Src:             'lib/bitmap.h:97,6'
          Dst:             bitmap_unit__
    - functionName:    stream_ssl_set_protocols
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1258
      functionLinenumberEnd: 1350
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg
      BBCount:         97
      ICount:          524
      EdgeCount:       125
      CyclomaticComplexity: 30
      functionsReached:
        - SSL_CTX_ctrl
        - bitmap_is_set
        - bitmap_set1
        - hmap_first
        - hmap_next
        - sset_add_and_free
        - sset_contains
        - sset_destroy
        - sset_find_and_delete
        - sset_from_delimited_string
        - sset_is_empty
        - ssl_init
        - strchr
        - strcmp
        - strlen
        - vlog
        - xmemdup0
        - xstrdup
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1259,20'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1259,24'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1260,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:1259,28'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1259,39'
              BranchSideFuncs:
                - strcmp
                - strchr
                - strlen
                - sset_from_delimited_string
                - sset_is_empty
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
                - sset_contains
                - bitmap_set1.3010
                - sset_find_and_delete
                - vlog
                - vlog
                - xmemdup0
                - sset_add_and_free
                - xstrdup
                - sset_add_and_free
                - xmemdup0
                - sset_add_and_free
            - BranchSide:      'lib/stream-ssl.c:1260,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:1259,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1260,9'
              BranchSideFuncs:
                - strchr
                - strlen
                - sset_from_delimited_string
                - sset_is_empty
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
                - sset_contains
                - bitmap_set1.3010
                - sset_find_and_delete
                - vlog
                - vlog
                - xmemdup0
                - sset_add_and_free
                - xstrdup
                - sset_add_and_free
                - xmemdup0
                - sset_add_and_free
            - BranchSide:      'lib/stream-ssl.c:1263,17'
              BranchSideFuncs:
                - strchr
                - strlen
                - sset_from_delimited_string
                - sset_is_empty
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
                - sset_contains
                - bitmap_set1.3010
                - sset_find_and_delete
                - vlog
                - vlog
                - xmemdup0
                - sset_add_and_free
                - xstrdup
                - sset_add_and_free
                - xmemdup0
                - sset_add_and_free
        - Branch String:   'lib/stream-ssl.c:1277,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1277,16'
              BranchSideFuncs:
                - sset_from_delimited_string
                - sset_is_empty
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
                - sset_contains
                - bitmap_set1.3010
                - sset_find_and_delete
                - vlog
                - vlog
                - xmemdup0
                - sset_add_and_free
                - xstrdup
                - sset_add_and_free
                - xmemdup0
                - sset_add_and_free
            - BranchSide:      'lib/stream-ssl.c:1282,16'
              BranchSideFuncs:
                - sset_from_delimited_string
                - sset_is_empty
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
                - sset_contains
                - bitmap_set1.3010
                - sset_find_and_delete
                - vlog
                - vlog
                - xmemdup0
                - sset_add_and_free
                - xstrdup
                - sset_add_and_free
        - Branch String:   'lib/stream-ssl.c:1277,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1280,42'
              BranchSideFuncs:
                - xmemdup0
                - sset_add_and_free
                - sset_is_empty
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
                - sset_contains
                - bitmap_set1.3010
                - sset_find_and_delete
                - vlog
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1282,16'
              BranchSideFuncs:
                - sset_from_delimited_string
                - sset_is_empty
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
                - sset_contains
                - bitmap_set1.3010
                - sset_find_and_delete
                - vlog
                - vlog
                - xmemdup0
                - sset_add_and_free
                - xstrdup
                - sset_add_and_free
        - Branch String:   'lib/stream-ssl.c:1282,16'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1285,42'
              BranchSideFuncs:
                - xmemdup0
                - sset_add_and_free
                - xstrdup
                - sset_add_and_free
                - sset_is_empty
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
                - sset_contains
                - bitmap_set1.3010
                - sset_find_and_delete
                - vlog
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1289,42'
              BranchSideFuncs:
                - sset_from_delimited_string
                - sset_is_empty
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
                - sset_contains
                - bitmap_set1.3010
                - sset_find_and_delete
                - vlog
                - vlog
        - Branch String:   'lib/stream-ssl.c:1292,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1293,9'
              BranchSideFuncs:
                - sset_destroy
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1297,12'
              BranchSideFuncs:
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
                - sset_contains
                - bitmap_set1.3010
                - sset_find_and_delete
                - vlog
        - Branch String:   'lib/stream-ssl.c:1293,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1293,9'
              BranchSideFuncs:
                - vlog
                - sset_destroy
            - BranchSide:      'lib/stream-ssl.c:1294,9'
              BranchSideFuncs:
                - sset_destroy
        - Branch String:   'lib/stream-ssl.c:1301,5'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1302,43'
              BranchSideFuncs:
                - sset_contains
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
                - bitmap_set1.3010
                - sset_find_and_delete
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1313,10'
              BranchSideFuncs:
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
        - Branch String:   'lib/stream-ssl.c:1302,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1303,27'
              BranchSideFuncs:
                - bitmap_set1.3010
                - sset_find_and_delete
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
                - sset_contains
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1311,5'
              BranchSideFuncs:
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
                - sset_contains
                - bitmap_set1.3010
                - sset_find_and_delete
                - vlog
        - Branch String:   'lib/stream-ssl.c:1303,27'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1303,25'
              BranchSideFuncs:
                - bitmap_set1.3010
                - sset_find_and_delete
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
                - sset_contains
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1303,25'
              BranchSideFuncs:
                - bitmap_set1.3010
                - sset_find_and_delete
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
                - sset_contains
                - vlog
        - Branch String:   'lib/stream-ssl.c:1304,27'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1304,25'
              BranchSideFuncs:
                - bitmap_set1.3010
                - sset_find_and_delete
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
                - sset_contains
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1304,25'
              BranchSideFuncs:
                - bitmap_set1.3010
                - sset_find_and_delete
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
                - sset_contains
                - vlog
        - Branch String:   'lib/stream-ssl.c:1305,17'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1306,17'
              BranchSideFuncs:
                - bitmap_set1.3010
                - sset_find_and_delete
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
                - sset_contains
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1308,31'
              BranchSideFuncs:
                - bitmap_set1.3010
                - sset_find_and_delete
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
                - sset_contains
                - vlog
        - Branch String:   'lib/stream-ssl.c:1306,17'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1306,17'
              BranchSideFuncs:
                - vlog
                - bitmap_set1.3010
                - sset_find_and_delete
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
                - sset_contains
            - BranchSide:      'lib/stream-ssl.c:1307,13'
              BranchSideFuncs:
                - bitmap_set1.3010
                - sset_find_and_delete
                - sset_is_empty
                - hmap_first.3009
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - vlog
                - bitmap_is_set.3007
                - vlog
                - sset_contains
                - vlog
        - Branch String:   'lib/stream-ssl.c:1313,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1316,9'
              BranchSideFuncs:
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - sset_destroy
                - vlog
                - bitmap_is_set.3007
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1323,5'
              BranchSideFuncs:
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - sset_destroy
                - vlog
                - bitmap_is_set.3007
                - vlog
        - Branch String:   'lib/stream-ssl.c:1316,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1316,9'
              BranchSideFuncs:
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1316,9'
              BranchSideFuncs:
                - hmap_first.3009
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
        - Branch String:   'lib/stream-ssl.c:1316,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1317,13'
              BranchSideFuncs:
                - hmap_next.3008
                - hmap_next.3008
                - sset_destroy
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1319,9'
              BranchSideFuncs:
                - sset_destroy
        - Branch String:   'lib/stream-ssl.c:1317,13'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1317,13'
              BranchSideFuncs:
                - vlog
                - hmap_next.3008
                - hmap_next.3008
                - sset_destroy
            - BranchSide:      'lib/stream-ssl.c:1318,9'
              BranchSideFuncs:
                - hmap_next.3008
                - hmap_next.3008
                - sset_destroy
                - vlog
        - Branch String:   'lib/stream-ssl.c:1316,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1316,9'
              BranchSideFuncs:
                - sset_destroy
                - hmap_next.3008
                - hmap_next.3008
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1316,9'
              BranchSideFuncs:
                - hmap_next.3008
                - sset_destroy
                - hmap_next.3008
                - vlog
        - Branch String:   'lib/stream-ssl.c:1323,5'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1323,5'
              BranchSideFuncs:
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - sset_destroy
                - vlog
                - bitmap_is_set.3007
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1323,5'
              BranchSideFuncs:
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - sset_destroy
                - vlog
                - bitmap_is_set.3007
                - vlog
        - Branch String:   'lib/stream-ssl.c:1324,5'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1324,5'
              BranchSideFuncs:
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - sset_destroy
                - vlog
                - bitmap_is_set.3007
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1324,5'
              BranchSideFuncs:
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - sset_destroy
                - vlog
                - bitmap_is_set.3007
                - vlog
        - Branch String:   'lib/stream-ssl.c:1325,19'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1325,23'
              BranchSideFuncs:
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - sset_destroy
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1335,9'
              BranchSideFuncs:
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - sset_destroy
                - vlog
        - Branch String:   'lib/stream-ssl.c:1325,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1326,25'
              BranchSideFuncs:
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - sset_destroy
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1335,9'
              BranchSideFuncs:
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - sset_destroy
                - vlog
        - Branch String:   'lib/stream-ssl.c:1326,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1327,38'
              BranchSideFuncs:
                - bitmap_is_set.3007
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - sset_destroy
                - vlog
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1333,5'
              BranchSideFuncs:
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - sset_destroy
                - vlog
        - Branch String:   'lib/stream-ssl.c:1327,17'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1328,17'
              BranchSideFuncs:
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - sset_destroy
                - vlog
                - bitmap_is_set.3007
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1332,9'
              BranchSideFuncs:
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - sset_destroy
                - vlog
                - bitmap_is_set.3007
                - vlog
        - Branch String:   'lib/stream-ssl.c:1328,17'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1328,17'
              BranchSideFuncs:
                - vlog
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - sset_destroy
                - vlog
                - bitmap_is_set.3007
            - BranchSide:      'lib/stream-ssl.c:1331,13'
              BranchSideFuncs:
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - sset_destroy
                - vlog
                - bitmap_is_set.3007
                - vlog
        - Branch String:   'lib/stream-ssl.c:1335,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1336,9'
              BranchSideFuncs:
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - sset_destroy
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1341,5'
              BranchSideFuncs:
                - SSL_CTX_ctrl
                - SSL_CTX_ctrl
                - xstrdup
                - sset_destroy
                - vlog
        - Branch String:   'lib/stream-ssl.c:1343,5'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1343,5'
              BranchSideFuncs:
                - vlog
                - xstrdup
                - sset_destroy
            - BranchSide:      'lib/stream-ssl.c:1346,29'
              BranchSideFuncs:
                - xstrdup
                - sset_destroy
      Callsites:
        - Src:             'lib/stream-ssl.c:1259,9'
          Dst:             ssl_init
        - Src:             'lib/stream-ssl.c:1259,32'
          Dst:             strcmp
        - Src:             'lib/stream-ssl.c:1273,18'
          Dst:             strchr
        - Src:             'lib/stream-ssl.c:1275,15'
          Dst:             strlen
        - Src:             'lib/stream-ssl.c:1280,33'
          Dst:             xmemdup0
        - Src:             'lib/stream-ssl.c:1280,9'
          Dst:             sset_add_and_free
        - Src:             'lib/stream-ssl.c:1285,33'
          Dst:             xmemdup0
        - Src:             'lib/stream-ssl.c:1285,9'
          Dst:             sset_add_and_free
        - Src:             'lib/stream-ssl.c:1286,33'
          Dst:             xstrdup
        - Src:             'lib/stream-ssl.c:1286,9'
          Dst:             sset_add_and_free
        - Src:             'lib/stream-ssl.c:1289,9'
          Dst:             sset_from_delimited_string
        - Src:             'lib/stream-ssl.c:1292,9'
          Dst:             sset_is_empty
        - Src:             'lib/stream-ssl.c:1293,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1302,13'
          Dst:             sset_contains
        - Src:             'lib/stream-ssl.c:1306,17'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1308,13'
          Dst:             bitmap_set1
        - Src:             'lib/stream-ssl.c:1309,13'
          Dst:             sset_find_and_delete
        - Src:             'lib/stream-ssl.c:1313,10'
          Dst:             sset_is_empty
        - Src:             'lib/stream-ssl.c:1316,9'
          Dst:             hmap_first
        - Src:             'lib/stream-ssl.c:1316,9'
          Dst:             hmap_first
        - Src:             'lib/stream-ssl.c:1317,13'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1316,9'
          Dst:             hmap_next
        - Src:             'lib/stream-ssl.c:1316,9'
          Dst:             hmap_next
        - Src:             'lib/stream-ssl.c:1327,18'
          Dst:             bitmap_is_set
        - Src:             'lib/stream-ssl.c:1328,17'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1341,5'
          Dst:             SSL_CTX_ctrl
        - Src:             'lib/stream-ssl.c:1342,5'
          Dst:             SSL_CTX_ctrl
        - Src:             'lib/stream-ssl.c:1343,5'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1346,21'
          Dst:             xstrdup
        - Src:             'lib/stream-ssl.c:1349,5'
          Dst:             sset_destroy
    - functionName:    stream_ssl_set_ciphersuites
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1243
      functionLinenumberEnd: 1252
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg
      BBCount:         19
      ICount:          80
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - SSL_CTX_set_ciphersuites
        - ssl_init
        - strcmp
        - vlog
        - xstrdup
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1244,20'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1244,24'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1245,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:1244,28'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1244,39'
              BranchSideFuncs:
                - strcmp
                - SSL_CTX_set_ciphersuites
                - xstrdup
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1245,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:1244,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1245,9'
              BranchSideFuncs:
                - SSL_CTX_set_ciphersuites
                - xstrdup
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1247,34'
              BranchSideFuncs:
                - SSL_CTX_set_ciphersuites
                - xstrdup
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:1247,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1248,9'
              BranchSideFuncs:
                - xstrdup
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1251,32'
              BranchSideFuncs:
                - xstrdup
        - Branch String:   'lib/stream-ssl.c:1248,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1248,9'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
                - xstrdup
            - BranchSide:      'lib/stream-ssl.c:1250,5'
              BranchSideFuncs:
                - xstrdup
      Callsites:
        - Src:             'lib/stream-ssl.c:1244,9'
          Dst:             ssl_init
        - Src:             'lib/stream-ssl.c:1244,32'
          Dst:             strcmp
        - Src:             'lib/stream-ssl.c:1247,9'
          Dst:             SSL_CTX_set_ciphersuites
        - Src:             'lib/stream-ssl.c:1248,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:1248,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:1248,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1251,24'
          Dst:             xstrdup
    - functionName:    SSL_CTX_set_ciphersuites
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_ssl_set_ciphers
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1228
      functionLinenumberEnd: 1237
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg
      BBCount:         19
      ICount:          80
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - SSL_CTX_set_cipher_list
        - ssl_init
        - strcmp
        - vlog
        - xstrdup
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1229,20'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1229,24'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1230,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:1229,28'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1229,39'
              BranchSideFuncs:
                - strcmp
                - SSL_CTX_set_cipher_list
                - xstrdup
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1230,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:1229,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1230,9'
              BranchSideFuncs:
                - SSL_CTX_set_cipher_list
                - xstrdup
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1232,33'
              BranchSideFuncs:
                - SSL_CTX_set_cipher_list
                - xstrdup
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:1232,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1233,9'
              BranchSideFuncs:
                - xstrdup
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1236,27'
              BranchSideFuncs:
                - xstrdup
        - Branch String:   'lib/stream-ssl.c:1233,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1233,9'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
                - xstrdup
            - BranchSide:      'lib/stream-ssl.c:1235,5'
              BranchSideFuncs:
                - xstrdup
      Callsites:
        - Src:             'lib/stream-ssl.c:1229,9'
          Dst:             ssl_init
        - Src:             'lib/stream-ssl.c:1229,32'
          Dst:             strcmp
        - Src:             'lib/stream-ssl.c:1232,9'
          Dst:             SSL_CTX_set_cipher_list
        - Src:             'lib/stream-ssl.c:1233,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:1233,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:1233,9'
          Dst:             vlog
        - Src:             'lib/stream-ssl.c:1236,19'
          Dst:             xstrdup
    - functionName:    stream_ssl_set_key_and_cert
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1216
      functionLinenumberEnd: 1222
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - private_key_file
        - certificate_file
      BBCount:         8
      ICount:          39
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - stream_ssl_set_certificate_file__
        - stream_ssl_set_private_key_file__
        - update_ssl_config
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1218,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1218,44'
              BranchSideFuncs:
                - update_ssl_config
                - stream_ssl_set_certificate_file__
                - stream_ssl_set_private_key_file__
            - BranchSide:      'lib/stream-ssl.c:1218,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:1217,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1217,9'
              BranchSideFuncs:
                - stream_ssl_set_certificate_file__
                - stream_ssl_set_private_key_file__
            - BranchSide:      'lib/stream-ssl.c:1219,43'
              BranchSideFuncs:
                - stream_ssl_set_certificate_file__
                - stream_ssl_set_private_key_file__
      Callsites:
        - Src:             'lib/stream-ssl.c:1217,9'
          Dst:             update_ssl_config
        - Src:             'lib/stream-ssl.c:1218,12'
          Dst:             update_ssl_config
        - Src:             'lib/stream-ssl.c:1219,9'
          Dst:             stream_ssl_set_certificate_file__
        - Src:             'lib/stream-ssl.c:1220,9'
          Dst:             stream_ssl_set_private_key_file__
    - functionName:    stream_ssl_set_certificate_file__
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1174
      functionLinenumberEnd: 1181
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - file_name
      BBCount:         11
      ICount:          51
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - SSL_CTX_use_certificate_file
        - vlog
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1175,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1176,26'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1178,9'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:1178,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:0,0'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1178,9'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
      Callsites:
        - Src:             'lib/stream-ssl.c:1175,9'
          Dst:             SSL_CTX_use_certificate_file
        - Src:             'lib/stream-ssl.c:1178,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:1178,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:1178,9'
          Dst:             vlog
    - functionName:    stream_ssl_set_private_key_file__
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1155
      functionLinenumberEnd: 1162
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - file_name
      BBCount:         11
      ICount:          51
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - ERR_error_string
        - ERR_get_error
        - SSL_CTX_use_PrivateKey_file
        - vlog
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1156,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1157,26'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1159,9'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
        - Branch String:   'lib/stream-ssl.c:1159,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:0,0'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
            - BranchSide:      'lib/stream-ssl.c:1159,9'
              BranchSideFuncs:
                - ERR_get_error
                - ERR_error_string
                - vlog
      Callsites:
        - Src:             'lib/stream-ssl.c:1156,9'
          Dst:             SSL_CTX_use_PrivateKey_file
        - Src:             'lib/stream-ssl.c:1159,9'
          Dst:             ERR_get_error
        - Src:             'lib/stream-ssl.c:1159,9'
          Dst:             ERR_error_string
        - Src:             'lib/stream-ssl.c:1159,9'
          Dst:             vlog
    - functionName:    SSL_CTX_use_PrivateKey_file
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SSL_CTX_use_certificate_file
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_ssl_set_certificate_file
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1185
      functionLinenumberEnd: 1189
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - file_name
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - stream_ssl_set_certificate_file__
        - update_ssl_config
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1186,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1186,9'
              BranchSideFuncs:
                - stream_ssl_set_certificate_file__
            - BranchSide:      'lib/stream-ssl.c:1187,43'
              BranchSideFuncs:
                - stream_ssl_set_certificate_file__
      Callsites:
        - Src:             'lib/stream-ssl.c:1186,9'
          Dst:             update_ssl_config
        - Src:             'lib/stream-ssl.c:1187,9'
          Dst:             stream_ssl_set_certificate_file__
    - functionName:    stream_ssl_set_private_key_file
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1166
      functionLinenumberEnd: 1170
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - file_name
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - stream_ssl_set_private_key_file__
        - update_ssl_config
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1167,9'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1167,9'
              BranchSideFuncs:
                - stream_ssl_set_private_key_file__
            - BranchSide:      'lib/stream-ssl.c:1168,43'
              BranchSideFuncs:
                - stream_ssl_set_private_key_file__
      Callsites:
        - Src:             'lib/stream-ssl.c:1167,9'
          Dst:             update_ssl_config
        - Src:             'lib/stream-ssl.c:1168,9'
          Dst:             stream_ssl_set_private_key_file__
    - functionName:    stream_ssl_is_configured
      functionSourceFile: '/src/openvswitch/lib/stream-ssl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1116
      functionLinenumberEnd: 1117
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          25
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-ssl.c:1117,34'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1117,34'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1117,49'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-ssl.c:1117,59'
          Branch Sides:
            - BranchSide:      'lib/stream-ssl.c:1117,59'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-ssl.c:1117,70'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    get_dh4096
      functionSourceFile: '/src/openvswitch/lib/dhparams.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          72
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - BN_bin2bn
        - BN_free
        - DH_free
        - DH_new
        - my_DH_set0_pqg
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/dhparams.c:124,14'
          Branch Sides:
            - BranchSide:      'lib/dhparams.c:124,9'
              BranchSideFuncs:
                - DH_new
                - BN_bin2bn
                - BN_bin2bn
                - my_DH_set0_pqg
                - DH_free
                - BN_free
                - BN_free
            - BranchSide:      'lib/dhparams.c:124,14'
              BranchSideFuncs:
                - DH_new
                - BN_bin2bn
                - BN_bin2bn
                - my_DH_set0_pqg
                - DH_free
                - BN_free
                - BN_free
        - Branch String:   'lib/dhparams.c:127,9'
          Branch Sides:
            - BranchSide:      'lib/dhparams.c:128,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/dhparams.c:129,9'
              BranchSideFuncs:
                - BN_bin2bn
                - BN_bin2bn
                - my_DH_set0_pqg
                - DH_free
                - BN_free
                - BN_free
        - Branch String:   'lib/dhparams.c:131,19'
          Branch Sides:
            - BranchSide:      'lib/dhparams.c:131,22'
              BranchSideFuncs:
                - DH_free
                - BN_free
                - BN_free
            - BranchSide:      'lib/dhparams.c:133,17'
              BranchSideFuncs:
                - DH_free
                - BN_free
                - BN_free
        - Branch String:   'lib/dhparams.c:132,13'
          Branch Sides:
            - BranchSide:      'lib/dhparams.c:132,32'
              BranchSideFuncs:
                - DH_free
                - BN_free
                - BN_free
            - BranchSide:      'lib/dhparams.c:133,17'
              BranchSideFuncs:
                - DH_free
                - BN_free
                - BN_free
        - Branch String:   'lib/dhparams.c:131,9'
          Branch Sides:
            - BranchSide:      'lib/dhparams.c:133,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/dhparams.c:138,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/dhparams.c:124,14'
          Dst:             DH_new
        - Src:             'lib/dhparams.c:129,9'
          Dst:             BN_bin2bn
        - Src:             'lib/dhparams.c:130,9'
          Dst:             BN_bin2bn
        - Src:             'lib/dhparams.c:132,17'
          Dst:             my_DH_set0_pqg
        - Src:             'lib/dhparams.c:133,9'
          Dst:             DH_free
        - Src:             'lib/dhparams.c:134,9'
          Dst:             BN_free
        - Src:             'lib/dhparams.c:135,9'
          Dst:             BN_free
    - functionName:    DH_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_bin2bn
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    my_DH_set0_pqg
      functionSourceFile: '/src/openvswitch/lib/dhparams.c'
      linkageType:     InternalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 14
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - dh
        - p
        - q
        - g
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - DH_set0_pqg
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dhparams.c:14,12'
          Dst:             DH_set0_pqg
    - functionName:    DH_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    DH_set0_pqg
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_dh2048
      functionSourceFile: '/src/openvswitch/lib/dhparams.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          72
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - BN_bin2bn
        - BN_free
        - DH_free
        - DH_new
        - my_DH_set0_pqg
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/dhparams.c:49,14'
          Branch Sides:
            - BranchSide:      'lib/dhparams.c:49,9'
              BranchSideFuncs:
                - DH_new
                - BN_bin2bn
                - BN_bin2bn
                - my_DH_set0_pqg
                - DH_free
                - BN_free
                - BN_free
            - BranchSide:      'lib/dhparams.c:49,14'
              BranchSideFuncs:
                - DH_new
                - BN_bin2bn
                - BN_bin2bn
                - my_DH_set0_pqg
                - DH_free
                - BN_free
                - BN_free
        - Branch String:   'lib/dhparams.c:52,9'
          Branch Sides:
            - BranchSide:      'lib/dhparams.c:53,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/dhparams.c:54,9'
              BranchSideFuncs:
                - BN_bin2bn
                - BN_bin2bn
                - my_DH_set0_pqg
                - DH_free
                - BN_free
                - BN_free
        - Branch String:   'lib/dhparams.c:56,19'
          Branch Sides:
            - BranchSide:      'lib/dhparams.c:56,22'
              BranchSideFuncs:
                - DH_free
                - BN_free
                - BN_free
            - BranchSide:      'lib/dhparams.c:58,17'
              BranchSideFuncs:
                - DH_free
                - BN_free
                - BN_free
        - Branch String:   'lib/dhparams.c:57,13'
          Branch Sides:
            - BranchSide:      'lib/dhparams.c:57,32'
              BranchSideFuncs:
                - DH_free
                - BN_free
                - BN_free
            - BranchSide:      'lib/dhparams.c:58,17'
              BranchSideFuncs:
                - DH_free
                - BN_free
                - BN_free
        - Branch String:   'lib/dhparams.c:56,9'
          Branch Sides:
            - BranchSide:      'lib/dhparams.c:58,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/dhparams.c:63,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/dhparams.c:49,14'
          Dst:             DH_new
        - Src:             'lib/dhparams.c:54,9'
          Dst:             BN_bin2bn
        - Src:             'lib/dhparams.c:55,9'
          Dst:             BN_bin2bn
        - Src:             'lib/dhparams.c:57,17'
          Dst:             my_DH_set0_pqg
        - Src:             'lib/dhparams.c:58,9'
          Dst:             DH_free
        - Src:             'lib/dhparams.c:59,9'
          Dst:             BN_free
        - Src:             'lib/dhparams.c:60,9'
          Dst:             BN_free
    - functionName:    dns_resolve_destroy
      functionSourceFile: '/src/openvswitch/lib/dns-resolve-stub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dns_resolve
      functionSourceFile: '/src/openvswitch/lib/dns-resolve-stub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - addr
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dns_resolve_init
      functionSourceFile: '/src/openvswitch/lib/dns-resolve-stub.c'
      linkageType:     InternalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 24
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - is_daemon
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_bindir
      functionSourceFile: '/src/openvswitch/./lib/dirs.c.in'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_dir
      functionUses:    0
      BranchProfiles:
        - Branch String:   './lib/dirs.c.in:111,12'
          Branch Sides:
            - BranchSide:      './lib/dirs.c.in:111,12'
              BranchSideFuncs:
                - get_dir
            - BranchSide:      './lib/dirs.c.in:111,12'
              BranchSideFuncs:
                - get_dir
      Callsites:
        - Src:             './lib/dirs.c.in:111,12'
          Dst:             get_dir
    - functionName:    get_dir
      functionSourceFile: '/src/openvswitch/./lib/dirs.c.in'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - d
      BBCount:         12
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - getenv
        - ovsthread_once_done
        - ovsthread_once_start
      functionUses:    5
      BranchProfiles:
        - Branch String:   './lib/dirs.c.in:34,9'
          Branch Sides:
            - BranchSide:      './lib/dirs.c.in:34,9'
              BranchSideFuncs:
                - getenv
                - ovsthread_once_done
            - BranchSide:      './lib/dirs.c.in:35,27'
              BranchSideFuncs:
                - getenv
                - ovsthread_once_done
        - Branch String:   './lib/dirs.c.in:36,23'
          Branch Sides:
            - BranchSide:      './lib/dirs.c.in:36,27'
              BranchSideFuncs:
                - ovsthread_once_done
            - BranchSide:      './lib/dirs.c.in:37,24'
              BranchSideFuncs:
                - ovsthread_once_done
        - Branch String:   './lib/dirs.c.in:36,13'
          Branch Sides:
            - BranchSide:      './lib/dirs.c.in:37,24'
              BranchSideFuncs:
                - ovsthread_once_done
            - BranchSide:      './lib/dirs.c.in:39,30'
              BranchSideFuncs:
                - ovsthread_once_done
      Callsites:
        - Src:             './lib/dirs.c.in:34,9'
          Dst:             ovsthread_once_start
        - Src:             './lib/dirs.c.in:35,20'
          Dst:             getenv
        - Src:             './lib/dirs.c.in:39,9'
          Dst:             ovsthread_once_done
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - once
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/thread.h:161,12'
          Branch Sides:
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs:
                - ovsthread_once_start__
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    ovs_dbdir
      functionSourceFile: '/src/openvswitch/./lib/dirs.c.in'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          63
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - getenv
        - ovsthread_once_done
        - ovsthread_once_start
        - xasprintf
      functionUses:    0
      BranchProfiles:
        - Branch String:   './lib/dirs.c.in:90,9'
          Branch Sides:
            - BranchSide:      './lib/dirs.c.in:90,9'
              BranchSideFuncs:
                - ovsthread_once_start.3074
                - getenv
                - getenv
                - ovsthread_once_done
                - xasprintf
            - BranchSide:      './lib/dirs.c.in:90,9'
              BranchSideFuncs:
                - ovsthread_once_start.3074
                - getenv
                - getenv
                - ovsthread_once_done
                - xasprintf
        - Branch String:   './lib/dirs.c.in:90,9'
          Branch Sides:
            - BranchSide:      './lib/dirs.c.in:90,9'
              BranchSideFuncs:
                - getenv
                - getenv
                - ovsthread_once_done
                - xasprintf
            - BranchSide:      './lib/dirs.c.in:91,17'
              BranchSideFuncs:
                - getenv
                - getenv
                - ovsthread_once_done
                - xasprintf
        - Branch String:   './lib/dirs.c.in:92,20'
          Branch Sides:
            - BranchSide:      './lib/dirs.c.in:92,24'
              BranchSideFuncs:
                - getenv
                - ovsthread_once_done
                - xasprintf
            - BranchSide:      './lib/dirs.c.in:93,32'
              BranchSideFuncs:
                - getenv
                - ovsthread_once_done
                - xasprintf
        - Branch String:   './lib/dirs.c.in:92,13'
          Branch Sides:
            - BranchSide:      './lib/dirs.c.in:93,32'
              BranchSideFuncs:
                - ovsthread_once_done
            - BranchSide:      './lib/dirs.c.in:99,9'
              BranchSideFuncs:
                - ovsthread_once_done
        - Branch String:   './lib/dirs.c.in:95,22'
          Branch Sides:
            - BranchSide:      './lib/dirs.c.in:95,19'
              BranchSideFuncs:
                - xasprintf
                - ovsthread_once_done
            - BranchSide:      './lib/dirs.c.in:96,52'
              BranchSideFuncs:
                - xasprintf
                - ovsthread_once_done
      Callsites:
        - Src:             './lib/dirs.c.in:90,9'
          Dst:             ovsthread_once_start
        - Src:             './lib/dirs.c.in:91,17'
          Dst:             getenv
        - Src:             './lib/dirs.c.in:93,32'
          Dst:             getenv
        - Src:             './lib/dirs.c.in:96,24'
          Dst:             xasprintf
        - Src:             './lib/dirs.c.in:99,9'
          Dst:             ovsthread_once_done
    - functionName:    ovs_logdir
      functionSourceFile: '/src/openvswitch/./lib/dirs.c.in'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_dir
      functionUses:    2
      BranchProfiles:
        - Branch String:   './lib/dirs.c.in:81,12'
          Branch Sides:
            - BranchSide:      './lib/dirs.c.in:81,12'
              BranchSideFuncs:
                - get_dir
            - BranchSide:      './lib/dirs.c.in:81,12'
              BranchSideFuncs:
                - get_dir
      Callsites:
        - Src:             './lib/dirs.c.in:81,12'
          Dst:             get_dir
    - functionName:    ovs_rundir
      functionSourceFile: '/src/openvswitch/./lib/dirs.c.in'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_dir
      functionUses:    9
      BranchProfiles:
        - Branch String:   './lib/dirs.c.in:71,12'
          Branch Sides:
            - BranchSide:      './lib/dirs.c.in:71,12'
              BranchSideFuncs:
                - get_dir
            - BranchSide:      './lib/dirs.c.in:71,12'
              BranchSideFuncs:
                - get_dir
      Callsites:
        - Src:             './lib/dirs.c.in:71,12'
          Dst:             get_dir
    - functionName:    ovs_pkgdatadir
      functionSourceFile: '/src/openvswitch/./lib/dirs.c.in'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_dir
      functionUses:    0
      BranchProfiles:
        - Branch String:   './lib/dirs.c.in:61,12'
          Branch Sides:
            - BranchSide:      './lib/dirs.c.in:61,12'
              BranchSideFuncs:
                - get_dir
            - BranchSide:      './lib/dirs.c.in:61,12'
              BranchSideFuncs:
                - get_dir
      Callsites:
        - Src:             './lib/dirs.c.in:61,12'
          Dst:             get_dir
    - functionName:    ovs_sysconfdir
      functionSourceFile: '/src/openvswitch/./lib/dirs.c.in'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_dir
      functionUses:    0
      BranchProfiles:
        - Branch String:   './lib/dirs.c.in:51,12'
          Branch Sides:
            - BranchSide:      './lib/dirs.c.in:51,12'
              BranchSideFuncs:
                - get_dir
            - BranchSide:      './lib/dirs.c.in:51,12'
              BranchSideFuncs:
                - get_dir
      Callsites:
        - Src:             './lib/dirs.c.in:51,12'
          Dst:             get_dir
    - functionName:    init_this_module_backtrace
      functionSourceFile: '/src/openvswitch/lib/backtrace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/backtrace.c:28,1'
          Branch Sides:
            - BranchSide:      'lib/backtrace.c:28,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/backtrace.c:28,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/backtrace.c:28,1'
          Dst:             vlog_insert_module
    - functionName:    read_received_backtrace
      functionSourceFile: '/src/openvswitch/lib/backtrace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - fd
        - dest
        - len
      BBCount:         16
      ICount:          93
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - fcntl
        - ovs_strerror
        - read
        - vlog
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/backtrace.c:97,5'
          Branch Sides:
            - BranchSide:      'lib/backtrace.c:97,5'
              BranchSideFuncs:
                - vlog
                - fcntl
                - read
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/backtrace.c:98,11'
              BranchSideFuncs:
                - fcntl
                - read
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/backtrace.c:102,9'
          Branch Sides:
            - BranchSide:      'lib/backtrace.c:102,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/backtrace.c:103,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/backtrace.c:103,9'
          Branch Sides:
            - BranchSide:      'lib/backtrace.c:103,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/backtrace.c:104,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/backtrace.c:97,5'
          Dst:             vlog
        - Src:             'lib/backtrace.c:98,5'
          Dst:             fcntl
        - Src:             'lib/backtrace.c:101,21'
          Dst:             read
        - Src:             'lib/backtrace.c:103,9'
          Dst:             __errno_location
        - Src:             'lib/backtrace.c:103,9'
          Dst:             ovs_strerror
        - Src:             'lib/backtrace.c:103,9'
          Dst:             vlog
    - functionName:    log_received_backtrace
      functionSourceFile: '/src/openvswitch/lib/backtrace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - fd
      BBCount:         14
      ICount:          72
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - backtrace_format
        - ds_cstr_ro
        - ds_destroy
        - ds_put_cstr
        - read_received_backtrace
        - vlog
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/backtrace.c:149,9'
          Branch Sides:
            - BranchSide:      'lib/backtrace.c:149,9'
              BranchSideFuncs:
                - ds_put_cstr
                - backtrace_format
                - ds_destroy
                - ds_cstr_ro
                - vlog
            - BranchSide:      'lib/backtrace.c:150,19'
              BranchSideFuncs:
                - ds_put_cstr
                - backtrace_format
                - ds_destroy
                - ds_cstr_ro
                - vlog
        - Branch String:   'lib/backtrace.c:152,23'
          Branch Sides:
            - BranchSide:      'lib/backtrace.c:152,12'
              BranchSideFuncs:
                - ds_put_cstr
                - backtrace_format
                - ds_destroy
                - ds_cstr_ro
                - vlog
            - BranchSide:      'lib/backtrace.c:152,12'
              BranchSideFuncs:
                - ds_put_cstr
                - backtrace_format
                - ds_destroy
                - ds_cstr_ro
                - vlog
        - Branch String:   'lib/backtrace.c:156,9'
          Branch Sides:
            - BranchSide:      'lib/backtrace.c:156,9'
              BranchSideFuncs:
                - ds_cstr_ro
                - vlog
                - ds_destroy
            - BranchSide:      'lib/backtrace.c:158,9'
              BranchSideFuncs:
                - ds_destroy
      Callsites:
        - Src:             'lib/backtrace.c:149,9'
          Dst:             read_received_backtrace
        - Src:             'lib/backtrace.c:154,9'
          Dst:             ds_put_cstr
        - Src:             'lib/backtrace.c:155,9'
          Dst:             backtrace_format
        - Src:             'lib/backtrace.c:156,9'
          Dst:             ds_cstr_ro
        - Src:             'lib/backtrace.c:156,9'
          Dst:             vlog
        - Src:             'lib/backtrace.c:158,9'
          Dst:             ds_destroy
    - functionName:    backtrace_format
      functionSourceFile: '/src/openvswitch/lib/backtrace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ds
        - bt
        - delimiter
      BBCount:         12
      ICount:          91
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - backtrace_symbols
        - ds_put_format
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/backtrace.c:42,9'
          Branch Sides:
            - BranchSide:      'lib/backtrace.c:42,9'
              BranchSideFuncs:
                - backtrace_symbols
                - ds_put_format
                - free
                - ds_put_format
            - BranchSide:      'lib/backtrace.c:43,44'
              BranchSideFuncs:
                - backtrace_symbols
                - ds_put_format
                - free
                - ds_put_format
        - Branch String:   'lib/backtrace.c:45,13'
          Branch Sides:
            - BranchSide:      'lib/backtrace.c:46,13'
              BranchSideFuncs:
                - ds_put_format
                - free
                - ds_put_format
            - BranchSide:      'lib/backtrace.c:49,18'
              BranchSideFuncs:
                - ds_put_format
                - free
                - ds_put_format
        - Branch String:   'lib/backtrace.c:49,9'
          Branch Sides:
            - BranchSide:      'lib/backtrace.c:50,27'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - free
            - BranchSide:      'lib/backtrace.c:53,23'
              BranchSideFuncs:
                - ds_put_format
                - free
      Callsites:
        - Src:             'lib/backtrace.c:43,26'
          Dst:             backtrace_symbols
        - Src:             'lib/backtrace.c:50,13'
          Dst:             ds_put_format
        - Src:             'lib/backtrace.c:53,9'
          Dst:             ds_put_format
    - functionName:    backtrace_symbols
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log_backtrace_at
      functionSourceFile: '/src/openvswitch/lib/backtrace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - msg
        - where
      BBCount:         11
      ICount:          65
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - backtrace_capture
        - backtrace_format
        - ds_cstr_ro
        - ds_destroy
        - ds_put_cstr
        - ds_put_format
        - vlog
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/backtrace.c:81,9'
          Branch Sides:
            - BranchSide:      'lib/backtrace.c:82,35'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_cstr
                - ds_put_cstr
                - backtrace_format
                - ds_destroy
                - ds_cstr_ro
                - vlog
            - BranchSide:      'lib/backtrace.c:85,22'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
                - backtrace_format
                - ds_destroy
                - ds_cstr_ro
                - vlog
        - Branch String:   'lib/backtrace.c:88,5'
          Branch Sides:
            - BranchSide:      'lib/backtrace.c:88,5'
              BranchSideFuncs:
                - ds_cstr_ro
                - vlog
                - ds_destroy
            - BranchSide:      'lib/backtrace.c:88,5'
              BranchSideFuncs:
                - ds_destroy
      Callsites:
        - Src:             'lib/backtrace.c:80,5'
          Dst:             backtrace_capture
        - Src:             'lib/backtrace.c:82,9'
          Dst:             ds_put_format
        - Src:             'lib/backtrace.c:85,5'
          Dst:             ds_put_cstr
        - Src:             'lib/backtrace.c:86,5'
          Dst:             ds_put_cstr
        - Src:             'lib/backtrace.c:87,5'
          Dst:             backtrace_format
        - Src:             'lib/backtrace.c:88,5'
          Dst:             ds_cstr_ro
        - Src:             'lib/backtrace.c:88,5'
          Dst:             vlog
        - Src:             'lib/backtrace.c:90,5'
          Dst:             ds_destroy
    - functionName:    backtrace_capture
      functionSourceFile: '/src/openvswitch/lib/backtrace.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - backtrace
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/backtrace.c:35,19'
          Dst:             backtrace
    - functionName:    backtrace
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    byteq_fast_forward
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - q
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - byteq_is_empty
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/byteq.c:213,9'
          Branch Sides:
            - BranchSide:      'lib/byteq.c:213,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/byteq.c:215,20'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/byteq.c:210,5'
          Dst:             byteq_is_empty
    - functionName:    byteq_is_empty
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - q
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_used
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:56,13'
          Dst:             byteq_used
    - functionName:    byteq_used
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - q
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    byteq_read
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - q
        - fd
      BBCount:         13
      ICount:          69
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - byteq_advance_head
        - byteq_head
        - byteq_headroom
        - byteq_is_full
        - read
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/byteq.c:137,5'
          Branch Sides:
            - BranchSide:      'lib/byteq.c:138,26'
              BranchSideFuncs:
                - byteq_head
                - byteq_headroom
                - read
                - __errno_location
                - byteq_advance_head
                - byteq_is_full
            - BranchSide:      'lib/byteq.c:145,5'
              BranchSideFuncs: []
        - Branch String:   'lib/byteq.c:139,13'
          Branch Sides:
            - BranchSide:      'lib/byteq.c:140,32'
              BranchSideFuncs:
                - byteq_advance_head
                - byteq_is_full
                - byteq_head
                - byteq_headroom
                - read
                - __errno_location
            - BranchSide:      'lib/byteq.c:142,21'
              BranchSideFuncs:
                - __errno_location
        - Branch String:   'lib/byteq.c:142,20'
          Branch Sides:
            - BranchSide:      'lib/byteq.c:142,31'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/byteq.c:142,13'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/byteq.c:137,13'
          Dst:             byteq_is_full
        - Src:             'lib/byteq.c:138,30'
          Dst:             byteq_head
        - Src:             'lib/byteq.c:138,45'
          Dst:             byteq_headroom
        - Src:             'lib/byteq.c:138,21'
          Dst:             read
        - Src:             'lib/byteq.c:140,13'
          Dst:             byteq_advance_head
        - Src:             'lib/byteq.c:142,31'
          Dst:             __errno_location
    - functionName:    byteq_is_full
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - q
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_avail
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:64,13'
          Dst:             byteq_avail
    - functionName:    byteq_head
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - q
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    byteq_headroom
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - q
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - byteq_avail
      functionUses:    6
      BranchProfiles:
        - Branch String:   'lib/byteq.c:190,12'
          Branch Sides:
            - BranchSide:      'lib/byteq.c:190,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/byteq.c:190,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/byteq.c:188,17'
          Dst:             byteq_avail
    - functionName:    byteq_advance_head
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - q
        - n
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_headroom
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:198,5'
          Dst:             byteq_headroom
    - functionName:    byteq_avail
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - q
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_used
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:48,22'
          Dst:             byteq_used
    - functionName:    byteq_advance_tail
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - q
        - n
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_tailroom
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:171,5'
          Dst:             byteq_tailroom
    - functionName:    byteq_tailroom
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - q
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - byteq_used
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/byteq.c:155,12'
          Branch Sides:
            - BranchSide:      'lib/byteq.c:155,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/byteq.c:155,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/byteq.c:153,16'
          Dst:             byteq_used
    - functionName:    byteq_write
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - q
        - fd
      BBCount:         10
      ICount:          63
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - byteq_advance_tail
        - byteq_is_empty
        - byteq_tail
        - byteq_tailroom
        - write
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/byteq.c:118,5'
          Branch Sides:
            - BranchSide:      'lib/byteq.c:119,27'
              BranchSideFuncs:
                - byteq_tail
                - byteq_tailroom
                - write
                - __errno_location
                - byteq_advance_tail
                - byteq_is_empty
            - BranchSide:      'lib/byteq.c:127,5'
              BranchSideFuncs: []
        - Branch String:   'lib/byteq.c:120,13'
          Branch Sides:
            - BranchSide:      'lib/byteq.c:121,32'
              BranchSideFuncs:
                - byteq_advance_tail
                - byteq_is_empty
                - byteq_tail
                - byteq_tailroom
                - write
                - __errno_location
            - BranchSide:      'lib/byteq.c:123,13'
              BranchSideFuncs:
                - __errno_location
      Callsites:
        - Src:             'lib/byteq.c:118,13'
          Dst:             byteq_is_empty
        - Src:             'lib/byteq.c:119,31'
          Dst:             byteq_tail
        - Src:             'lib/byteq.c:119,46'
          Dst:             byteq_tailroom
        - Src:             'lib/byteq.c:119,21'
          Dst:             write
        - Src:             'lib/byteq.c:121,13'
          Dst:             byteq_advance_tail
        - Src:             'lib/byteq.c:124,20'
          Dst:             __errno_location
    - functionName:    byteq_tail
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - q
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    byteq_get
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - q
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_is_empty
        - byteq_tail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:106,5'
          Dst:             byteq_is_empty
        - Src:             'lib/byteq.c:107,10'
          Dst:             byteq_tail
    - functionName:    byteq_put_string
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - q
        - s
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_putn
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:97,22'
          Dst:             strlen
        - Src:             'lib/byteq.c:97,5'
          Dst:             byteq_putn
    - functionName:    byteq_putn
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - q
        - p_
        - n
      BBCount:         9
      ICount:          80
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - byteq_advance_head
        - byteq_avail
        - byteq_head
        - byteq_headroom
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/byteq.c:83,5'
          Branch Sides:
            - BranchSide:      'lib/byteq.c:84,24'
              BranchSideFuncs:
                - byteq_headroom
                - byteq_headroom
                - byteq_head
                - byteq_advance_head
            - BranchSide:      'lib/byteq.c:90,1'
              BranchSideFuncs: []
        - Branch String:   'lib/byteq.c:84,24'
          Branch Sides:
            - BranchSide:      'lib/byteq.c:84,16'
              BranchSideFuncs:
                - byteq_head
                - byteq_advance_head
                - byteq_headroom
                - byteq_headroom
            - BranchSide:      'lib/byteq.c:84,16'
              BranchSideFuncs:
                - byteq_headroom
                - byteq_head
                - byteq_advance_head
                - byteq_headroom
      Callsites:
        - Src:             'lib/byteq.c:82,5'
          Dst:             byteq_avail
        - Src:             'lib/byteq.c:84,24'
          Dst:             byteq_headroom
        - Src:             'lib/byteq.c:84,24'
          Dst:             byteq_headroom
        - Src:             'lib/byteq.c:85,16'
          Dst:             byteq_head
        - Src:             'lib/byteq.c:86,9'
          Dst:             byteq_advance_head
    - functionName:    byteq_put
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - q
        - c
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - byteq_head
        - byteq_is_full
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:71,5'
          Dst:             byteq_is_full
        - Src:             'lib/byteq.c:72,6'
          Dst:             byteq_head
    - functionName:    is_pow2
      functionSourceFile: '/src/openvswitch/./include/openvswitch/util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - x
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/util.h:396,12'
          Branch Sides:
            - BranchSide:      './include/openvswitch/util.h:396,12'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/util.h:396,12'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    byteq_init
      functionSourceFile: '/src/openvswitch/lib/byteq.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - q
        - buffer
        - size
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - is_pow2
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/byteq.c:31,5'
          Dst:             is_pow2
    - functionName:    init_this_module_command_line
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/command-line.c:28,1'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:28,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/command-line.c:28,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/command-line.c:28,1'
          Dst:             vlog_insert_module
    - functionName:    ovs_cmdl_proctitle_restore
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 395
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/command-line.c:388,5'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:388,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - free
            - BranchSide:      'lib/command-line.c:388,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - free
        - Branch String:   'lib/command-line.c:389,9'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:389,9'
              BranchSideFuncs:
                - free
                - ovs_mutex_unlock
            - BranchSide:      'lib/command-line.c:390,16'
              BranchSideFuncs:
                - free
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/command-line.c:388,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/command-line.c:394,5'
          Dst:             ovs_mutex_unlock
    - functionName:    ovs_cmdl_proctitle_set
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 352
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - format
      BBCount:         18
      ICount:          118
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - snprintf
        - strcpy
        - vsnprintf
        - xmemdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/command-line.c:357,21'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:357,24'
              BranchSideFuncs:
                - xmemdup
                - snprintf
                - ovs_mutex_unlock
                - strcpy
                - vsnprintf
            - BranchSide:      'lib/command-line.c:358,9'
              BranchSideFuncs:
                - ovs_mutex_unlock
        - Branch String:   'lib/command-line.c:357,9'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:358,9'
              BranchSideFuncs:
                - ovs_mutex_unlock
            - BranchSide:      'lib/command-line.c:361,10'
              BranchSideFuncs:
                - xmemdup
                - snprintf
                - ovs_mutex_unlock
                - strcpy
                - vsnprintf
        - Branch String:   'lib/command-line.c:361,9'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:362,35'
              BranchSideFuncs:
                - snprintf
                - ovs_mutex_unlock
                - strcpy
                - vsnprintf
            - BranchSide:      'lib/command-line.c:365,5'
              BranchSideFuncs:
                - snprintf
                - ovs_mutex_unlock
                - strcpy
                - vsnprintf
        - Branch String:   'lib/command-line.c:367,9'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:368,24'
              BranchSideFuncs:
                - vsnprintf
                - ovs_mutex_unlock
                - strcpy
            - BranchSide:      'lib/command-line.c:370,9'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - strcpy
        - Branch String:   'lib/command-line.c:370,9'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:372,17'
              BranchSideFuncs:
                - strcpy
                - ovs_mutex_unlock
            - BranchSide:      'lib/command-line.c:376,17'
              BranchSideFuncs:
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/command-line.c:356,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/command-line.c:362,27'
          Dst:             xmemdup
        - Src:             'lib/command-line.c:366,9'
          Dst:             snprintf
        - Src:             'lib/command-line.c:368,14'
          Dst:             vsnprintf
        - Src:             'lib/command-line.c:372,9'
          Dst:             strcpy
        - Src:             'lib/command-line.c:381,5'
          Dst:             ovs_mutex_unlock
    - functionName:    strcpy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_cmdl_proctitle_init
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - argc
        - argv
      BBCount:         19
      ICount:          143
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - assert_single_threaded_at
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - strlen
        - xstrdup
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/command-line.c:316,15'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:316,19'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - strlen
                - xstrdup
                - ovs_mutex_unlock
                - strlen
                - xstrdup
            - BranchSide:      'lib/command-line.c:318,9'
              BranchSideFuncs: []
        - Branch String:   'lib/command-line.c:316,9'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:318,9'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - strlen
                - xstrdup
                - ovs_mutex_unlock
                - strlen
                - xstrdup
            - BranchSide:      'lib/command-line.c:321,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - strlen
                - xstrdup
                - ovs_mutex_unlock
                - strlen
                - xstrdup
        - Branch String:   'lib/command-line.c:327,5'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:328,30'
              BranchSideFuncs:
                - strlen
                - xstrdup
                - ovs_mutex_unlock
            - BranchSide:      'lib/command-line.c:345,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
        - Branch String:   'lib/command-line.c:331,13'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:333,27'
              BranchSideFuncs:
                - xstrdup
                - ovs_mutex_unlock
                - strlen
            - BranchSide:      'lib/command-line.c:335,20'
              BranchSideFuncs:
                - xstrdup
                - ovs_mutex_unlock
                - strlen
        - Branch String:   'lib/command-line.c:335,20'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:0,0'
              BranchSideFuncs:
                - xstrdup
                - ovs_mutex_unlock
                - strlen
            - BranchSide:      'lib/command-line.c:337,26'
              BranchSideFuncs:
                - xstrdup
                - ovs_mutex_unlock
                - strlen
      Callsites:
        - Src:             'lib/command-line.c:315,5'
          Dst:             assert_single_threaded_at
        - Src:             'lib/command-line.c:321,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/command-line.c:324,17'
          Dst:             strlen
        - Src:             'lib/command-line.c:325,15'
          Dst:             xstrdup
        - Src:             'lib/command-line.c:328,23'
          Dst:             strlen
        - Src:             'lib/command-line.c:343,19'
          Dst:             xstrdup
        - Src:             'lib/command-line.c:345,5'
          Dst:             ovs_mutex_unlock
    - functionName:    ovs_cmdl_run_command_read_only
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - commands
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_cmdl_run_command__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/command-line.c:285,5'
          Dst:             ovs_cmdl_run_command__
    - functionName:    ovs_cmdl_run_command__
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - ctx
        - commands
        - read_only
      BBCount:         24
      ICount:          170
      EdgeCount:       26
      CyclomaticComplexity: 4
      functionsReached:
        - ferror
        - ovs_fatal
        - strcmp
        - vlog_fatal
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/command-line.c:229,9'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:230,9'
              BranchSideFuncs:
                - ovs_fatal
            - BranchSide:      'lib/command-line.c:233,14'
              BranchSideFuncs:
                - vlog_fatal
                - strcmp
                - ferror
                - ferror
                - vlog_fatal
                - vlog_fatal
                - vlog_fatal
                - vlog_fatal
                - vlog_fatal
        - Branch String:   'lib/command-line.c:233,5'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:234,21'
              BranchSideFuncs:
                - strcmp
                - ferror
                - ferror
                - vlog_fatal
                - vlog_fatal
                - vlog_fatal
                - vlog_fatal
                - vlog_fatal
                - vlog_fatal
            - BranchSide:      'lib/command-line.c:259,5'
              BranchSideFuncs:
                - vlog_fatal
        - Branch String:   'lib/command-line.c:234,13'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:235,25'
              BranchSideFuncs:
                - vlog_fatal
                - strcmp
                - ferror
                - ferror
                - vlog_fatal
                - vlog_fatal
                - vlog_fatal
                - vlog_fatal
                - vlog_fatal
            - BranchSide:      'lib/command-line.c:257,5'
              BranchSideFuncs:
                - vlog_fatal
                - strcmp
                - ferror
                - ferror
                - vlog_fatal
                - vlog_fatal
                - vlog_fatal
                - vlog_fatal
                - vlog_fatal
        - Branch String:   'lib/command-line.c:236,17'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:237,17'
              BranchSideFuncs:
                - vlog_fatal
            - BranchSide:      'lib/command-line.c:239,24'
              BranchSideFuncs:
                - ferror
                - ferror
                - vlog_fatal
                - vlog_fatal
                - vlog_fatal
                - vlog_fatal
        - Branch String:   'lib/command-line.c:239,24'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:240,17'
              BranchSideFuncs:
                - vlog_fatal
            - BranchSide:      'lib/command-line.c:243,21'
              BranchSideFuncs:
                - ferror
                - ferror
                - vlog_fatal
                - vlog_fatal
                - vlog_fatal
        - Branch String:   'lib/command-line.c:243,39'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:243,42'
              BranchSideFuncs:
                - ferror
                - ferror
                - vlog_fatal
                - vlog_fatal
                - vlog_fatal
            - BranchSide:      'lib/command-line.c:247,17'
              BranchSideFuncs:
                - ferror
                - ferror
                - vlog_fatal
                - vlog_fatal
        - Branch String:   'lib/command-line.c:243,21'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:244,21'
              BranchSideFuncs:
                - vlog_fatal
            - BranchSide:      'lib/command-line.c:247,17'
              BranchSideFuncs:
                - ferror
                - ferror
                - vlog_fatal
                - vlog_fatal
        - Branch String:   'lib/command-line.c:248,21'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:249,21'
              BranchSideFuncs:
                - vlog_fatal
            - BranchSide:      'lib/command-line.c:251,28'
              BranchSideFuncs:
                - ferror
                - vlog_fatal
        - Branch String:   'lib/command-line.c:251,21'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:252,21'
              BranchSideFuncs:
                - vlog_fatal
            - BranchSide:      'lib/command-line.c:254,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/command-line.c:230,9'
          Dst:             ovs_fatal
        - Src:             'lib/command-line.c:234,14'
          Dst:             strcmp
        - Src:             'lib/command-line.c:237,17'
          Dst:             vlog_fatal
        - Src:             'lib/command-line.c:240,17'
          Dst:             vlog_fatal
        - Src:             'lib/command-line.c:244,21'
          Dst:             vlog_fatal
        - Src:             'lib/command-line.c:248,21'
          Dst:             ferror
        - Src:             'lib/command-line.c:249,21'
          Dst:             vlog_fatal
        - Src:             'lib/command-line.c:251,21'
          Dst:             ferror
        - Src:             'lib/command-line.c:252,21'
          Dst:             vlog_fatal
        - Src:             'lib/command-line.c:259,5'
          Dst:             vlog_fatal
    - functionName:    ovs_cmdl_run_command
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 277
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - commands
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_cmdl_run_command__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/command-line.c:278,5'
          Dst:             ovs_cmdl_run_command__
    - functionName:    ovs_cmdl_print_options
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - options
      BBCount:         20
      ICount:          129
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - ds_destroy
        - ds_put_format
        - printf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/command-line.c:208,5'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:209,34'
              BranchSideFuncs:
                - ds_put_format
                - printf
                - ds_destroy
                - ds_put_format
            - BranchSide:      'lib/command-line.c:218,21'
              BranchSideFuncs:
                - printf
                - ds_destroy
        - Branch String:   'lib/command-line.c:213,23'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:212,9'
              BranchSideFuncs:
                - ds_put_format
                - printf
                - ds_destroy
                - ds_put_format
            - BranchSide:      'lib/command-line.c:213,36'
              BranchSideFuncs:
                - ds_put_format
                - printf
                - ds_destroy
                - ds_put_format
        - Branch String:   'lib/command-line.c:214,29'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:214,32'
              BranchSideFuncs:
                - printf
                - ds_destroy
                - ds_put_format
                - ds_put_format
            - BranchSide:      'lib/command-line.c:217,5'
              BranchSideFuncs:
                - printf
                - ds_destroy
                - ds_put_format
                - ds_put_format
        - Branch String:   'lib/command-line.c:214,43'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:214,46'
              BranchSideFuncs:
                - printf
                - ds_destroy
                - ds_put_format
                - ds_put_format
            - BranchSide:      'lib/command-line.c:217,5'
              BranchSideFuncs:
                - printf
                - ds_destroy
                - ds_put_format
                - ds_put_format
        - Branch String:   'lib/command-line.c:214,13'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:215,44'
              BranchSideFuncs:
                - ds_put_format
                - printf
                - ds_destroy
                - ds_put_format
            - BranchSide:      'lib/command-line.c:217,5'
              BranchSideFuncs:
                - printf
                - ds_destroy
                - ds_put_format
                - ds_put_format
        - Branch String:   'lib/command-line.c:215,52'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:215,65'
              BranchSideFuncs:
                - ds_put_format
                - printf
                - ds_destroy
                - ds_put_format
            - BranchSide:      'lib/command-line.c:215,13'
              BranchSideFuncs:
                - ds_put_format
                - printf
                - ds_destroy
                - ds_put_format
      Callsites:
        - Src:             'lib/command-line.c:212,9'
          Dst:             ds_put_format
        - Src:             'lib/command-line.c:215,13'
          Dst:             ds_put_format
        - Src:             'lib/command-line.c:218,5'
          Dst:             printf
        - Src:             'lib/command-line.c:219,5'
          Dst:             ds_destroy
    - functionName:    ovs_cmdl_print_commands
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - commands
      BBCount:         10
      ICount:          64
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ds_destroy
        - ds_put_cstr
        - ds_put_format
        - printf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/command-line.c:194,5'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:195,44'
              BranchSideFuncs:
                - ds_put_format
                - printf
                - ds_destroy
            - BranchSide:      'lib/command-line.c:198,21'
              BranchSideFuncs:
                - printf
                - ds_destroy
        - Branch String:   'lib/command-line.c:196,53'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:196,64'
              BranchSideFuncs:
                - ds_put_format
                - printf
                - ds_destroy
            - BranchSide:      'lib/command-line.c:196,9'
              BranchSideFuncs:
                - ds_put_format
                - printf
                - ds_destroy
      Callsites:
        - Src:             'lib/command-line.c:193,5'
          Dst:             ds_put_cstr
        - Src:             'lib/command-line.c:196,9'
          Dst:             ds_put_format
        - Src:             'lib/command-line.c:198,5'
          Dst:             printf
        - Src:             'lib/command-line.c:199,5'
          Dst:             ds_destroy
    - functionName:    find_option_by_value
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - options
        - value
      BBCount:         8
      ICount:          48
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/command-line.c:73,5'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:74,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/command-line.c:78,5'
              BranchSideFuncs: []
        - Branch String:   'lib/command-line.c:74,13'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:75,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/command-line.c:77,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    build_short_options
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - long_options
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_cmdl_long_options_to_short_options
        - xasprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/command-line.c:61,11'
          Dst:             ovs_cmdl_long_options_to_short_options
        - Src:             'lib/command-line.c:62,21'
          Dst:             xasprintf
    - functionName:    ovs_cmdl_long_options_to_short_options
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - options
      BBCount:         20
      ICount:          120
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - xstrdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/command-line.c:39,5'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:40,34'
              BranchSideFuncs:
                - xstrdup
            - BranchSide:      'lib/command-line.c:51,6'
              BranchSideFuncs:
                - xstrdup
        - Branch String:   'lib/command-line.c:41,29'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:41,32'
              BranchSideFuncs:
                - xstrdup
            - BranchSide:      'lib/command-line.c:50,5'
              BranchSideFuncs:
                - xstrdup
        - Branch String:   'lib/command-line.c:41,43'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:41,46'
              BranchSideFuncs:
                - xstrdup
            - BranchSide:      'lib/command-line.c:50,5'
              BranchSideFuncs:
                - xstrdup
        - Branch String:   'lib/command-line.c:41,13'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:42,20'
              BranchSideFuncs:
                - xstrdup
            - BranchSide:      'lib/command-line.c:50,5'
              BranchSideFuncs:
                - xstrdup
        - Branch String:   'lib/command-line.c:43,17'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:44,19'
              BranchSideFuncs:
                - xstrdup
            - BranchSide:      'lib/command-line.c:45,24'
              BranchSideFuncs:
                - xstrdup
      Callsites:
        - Src:             'lib/command-line.c:53,12'
          Dst:             xstrdup
    - functionName:    ovs_cmdl_parse_all
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - argc
        - argv
        - options
        - pop
        - n_pop
      BBCount:         33
      ICount:          251
      EdgeCount:       38
      CyclomaticComplexity: 7
      functionsReached:
        - abort
        - build_short_options
        - find_option_by_value
        - getopt_long
        - x2nrealloc
        - xasprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/command-line.c:115,5'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:116,18'
              BranchSideFuncs:
                - build_short_options
                - getopt_long
                - xasprintf
                - free
                - free
                - xasprintf
                - xasprintf
                - find_option_by_value
                - xasprintf
                - abort
                - free
                - find_option_by_value
                - x2nrealloc
            - BranchSide:      'lib/command-line.c:119,47'
              BranchSideFuncs:
                - build_short_options
                - getopt_long
                - xasprintf
                - free
                - free
                - xasprintf
                - xasprintf
                - find_option_by_value
                - xasprintf
                - abort
                - free
                - find_option_by_value
                - x2nrealloc
        - Branch String:   'lib/command-line.c:132,9'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:134,20'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/command-line.c:143,13'
              BranchSideFuncs:
                - abort
            - BranchSide:      'lib/command-line.c:146,17'
              BranchSideFuncs:
                - xasprintf
                - free
                - free
                - xasprintf
                - find_option_by_value
                - xasprintf
            - BranchSide:      'lib/command-line.c:159,31'
              BranchSideFuncs:
                - xasprintf
                - free
                - free
            - BranchSide:      'lib/command-line.c:163,17'
              BranchSideFuncs:
                - getopt_long
                - xasprintf
                - free
                - free
                - xasprintf
                - xasprintf
                - find_option_by_value
                - xasprintf
                - abort
                - free
                - find_option_by_value
                - x2nrealloc
        - Branch String:   'lib/command-line.c:146,24'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:146,48'
              BranchSideFuncs:
                - find_option_by_value
                - xasprintf
                - free
                - free
                - xasprintf
                - xasprintf
            - BranchSide:      'lib/command-line.c:149,24'
              BranchSideFuncs:
                - xasprintf
                - free
                - free
                - xasprintf
        - Branch String:   'lib/command-line.c:146,17'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:148,35'
              BranchSideFuncs:
                - xasprintf
                - free
                - free
            - BranchSide:      'lib/command-line.c:149,24'
              BranchSideFuncs:
                - xasprintf
                - free
                - free
                - xasprintf
        - Branch String:   'lib/command-line.c:149,24'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:150,63'
              BranchSideFuncs:
                - xasprintf
                - free
                - free
            - BranchSide:      'lib/command-line.c:153,35'
              BranchSideFuncs:
                - xasprintf
                - free
                - free
        - Branch String:   'lib/command-line.c:163,17'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:164,33'
              BranchSideFuncs:
                - x2nrealloc
                - getopt_long
                - xasprintf
                - free
                - free
                - xasprintf
                - xasprintf
                - find_option_by_value
                - xasprintf
                - abort
                - free
                - find_option_by_value
            - BranchSide:      'lib/command-line.c:166,17'
              BranchSideFuncs:
                - getopt_long
                - xasprintf
                - free
                - free
                - xasprintf
                - xasprintf
                - find_option_by_value
                - xasprintf
                - abort
                - free
                - x2nrealloc
                - find_option_by_value
        - Branch String:   'lib/command-line.c:166,17'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:167,51'
              BranchSideFuncs:
                - find_option_by_value
                - getopt_long
                - xasprintf
                - free
                - free
                - xasprintf
                - xasprintf
                - find_option_by_value
                - xasprintf
                - abort
                - free
                - x2nrealloc
            - BranchSide:      'lib/command-line.c:169,17'
              BranchSideFuncs:
                - getopt_long
                - xasprintf
                - free
                - free
                - xasprintf
                - xasprintf
                - find_option_by_value
                - xasprintf
                - abort
                - free
                - find_option_by_value
                - x2nrealloc
        - Branch String:   'lib/command-line.c:169,17'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:172,28'
              BranchSideFuncs:
                - getopt_long
                - xasprintf
                - free
                - free
                - xasprintf
                - xasprintf
                - find_option_by_value
                - xasprintf
                - abort
                - free
                - find_option_by_value
                - x2nrealloc
            - BranchSide:      'lib/command-line.c:172,28'
              BranchSideFuncs:
                - getopt_long
                - xasprintf
                - free
                - free
                - xasprintf
                - xasprintf
                - find_option_by_value
                - xasprintf
                - abort
                - free
                - find_option_by_value
                - x2nrealloc
      Callsites:
        - Src:             'lib/command-line.c:119,27'
          Dst:             build_short_options
        - Src:             'lib/command-line.c:131,17'
          Dst:             getopt_long
        - Src:             'lib/command-line.c:143,13'
          Dst:             abort
        - Src:             'lib/command-line.c:146,27'
          Dst:             find_option_by_value
        - Src:             'lib/command-line.c:147,25'
          Dst:             xasprintf
        - Src:             'lib/command-line.c:150,25'
          Dst:             xasprintf
        - Src:             'lib/command-line.c:152,25'
          Dst:             xasprintf
        - Src:             'lib/command-line.c:158,21'
          Dst:             xasprintf
        - Src:             'lib/command-line.c:164,22'
          Dst:             x2nrealloc
        - Src:             'lib/command-line.c:167,30'
          Dst:             find_option_by_value
    - functionName:    getopt_long
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_cmdl_env_parse_all
      functionSourceFile: '/src/openvswitch/lib/command-line.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - argcp
        - argv
        - env_options
      BBCount:         10
      ICount:          80
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - svec_add
        - svec_parse_words
        - svec_terminate
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/command-line.c:92,9'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:93,33'
              BranchSideFuncs:
                - svec_parse_words
                - svec_terminate
                - svec_add
            - BranchSide:      'lib/command-line.c:95,14'
              BranchSideFuncs:
                - svec_terminate
                - svec_add
        - Branch String:   'lib/command-line.c:95,5'
          Branch Sides:
            - BranchSide:      'lib/command-line.c:96,25'
              BranchSideFuncs:
                - svec_add
                - svec_terminate
            - BranchSide:      'lib/command-line.c:98,5'
              BranchSideFuncs:
                - svec_terminate
      Callsites:
        - Src:             'lib/command-line.c:91,5'
          Dst:             svec_add
        - Src:             'lib/command-line.c:93,9'
          Dst:             svec_parse_words
        - Src:             'lib/command-line.c:96,9'
          Dst:             svec_add
        - Src:             'lib/command-line.c:98,5'
          Dst:             svec_terminate
    - functionName:    init_this_module_cooperative_multitasking
      functionSourceFile: '/src/openvswitch/lib/cooperative-multitasking.c'
      linkageType:     InternalLinkage
      functionLinenumber: 27
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/cooperative-multitasking.c:27,1'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:27,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/cooperative-multitasking.c:27,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/cooperative-multitasking.c:27,1'
          Dst:             vlog_insert_module
    - functionName:    hmap_insert_fast
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - node
        - hash
      BBCount:         1
      ICount:          42
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_rot
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - x
        - k
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mhash_add__
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_rot
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/hash.h:66,9'
          Branch Sides:
            - BranchSide:      'lib/hash.h:67,16'
              BranchSideFuncs:
                - hash_rot.3305
            - BranchSide:      'lib/hash.h:70,10'
              BranchSideFuncs:
                - hash_rot.3305
      Callsites:
        - Src:             'lib/hash.h:71,12'
          Dst:             hash_rot
    - functionName:    mhash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_rot
        - mhash_add__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:78,12'
          Dst:             mhash_add__
        - Src:             'lib/hash.h:79,12'
          Dst:             hash_rot
    - functionName:    mhash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - hash
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:109,12'
          Dst:             mhash_add
    - functionName:    hash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - final
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:119,12'
          Dst:             mhash_finish
    - functionName:    hash_2words
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - x
        - y
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add
        - hash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:154,33'
          Dst:             hash_add
        - Src:             'lib/hash.h:154,24'
          Dst:             hash_add
        - Src:             'lib/hash.h:154,12'
          Dst:             hash_finish
    - functionName:    hash_int
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - x
        - basis
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_2words
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:409,12'
          Dst:             hash_2words
    - functionName:    hmap_next_with_hash__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - node
        - hash
      BBCount:         7
      ICount:          42
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:349,25'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:349,28'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:349,5'
              BranchSideFuncs: []
        - Branch String:   './include/openvswitch/hmap.h:349,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:350,16'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:352,12'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    hmap_next__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - start
      BBCount:         8
      ICount:          55
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:403,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:404,34'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:409,5'
              BranchSideFuncs: []
        - Branch String:   './include/openvswitch/hmap.h:405,13'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:406,20'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:408,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    cooperative_multitasking_yield_at__
      functionSourceFile: '/src/openvswitch/lib/cooperative-multitasking.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - source_location
      BBCount:         31
      ICount:          191
      EdgeCount:       39
      CyclomaticComplexity: 10
      functionsReached:
        - hmap_first
        - hmap_next
        - log_backtrace_at
        - time_msec
        - vlog
        - vlog_is_enabled
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/cooperative-multitasking.c:111,5'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:111,5'
              BranchSideFuncs:
                - time_msec
                - vlog
                - time_msec
                - hmap_next.3318
                - vlog_is_enabled
                - log_backtrace_at
                - vlog
            - BranchSide:      'lib/cooperative-multitasking.c:111,5'
              BranchSideFuncs:
                - time_msec
                - vlog
                - time_msec
                - hmap_next.3318
                - vlog_is_enabled
                - log_backtrace_at
                - vlog
        - Branch String:   'lib/cooperative-multitasking.c:111,5'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:112,19'
              BranchSideFuncs:
                - time_msec
                - hmap_next.3318
                - time_msec
                - vlog
                - vlog_is_enabled
                - log_backtrace_at
                - vlog
            - BranchSide:      'lib/cooperative-multitasking.c:130,15'
              BranchSideFuncs:
                - time_msec
                - vlog
        - Branch String:   'lib/cooperative-multitasking.c:114,13'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:115,20'
              BranchSideFuncs:
                - hmap_next.3318
                - time_msec
                - vlog
                - time_msec
                - vlog_is_enabled
                - log_backtrace_at
                - vlog
            - BranchSide:      'lib/cooperative-multitasking.c:128,5'
              BranchSideFuncs:
                - hmap_next.3318
                - time_msec
                - vlog
                - time_msec
                - vlog_is_enabled
                - log_backtrace_at
                - vlog
        - Branch String:   'lib/cooperative-multitasking.c:117,13'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:117,13'
              BranchSideFuncs:
                - vlog
                - hmap_next.3318
                - time_msec
                - vlog
                - time_msec
                - vlog_is_enabled
                - log_backtrace_at
            - BranchSide:      'lib/cooperative-multitasking.c:122,17'
              BranchSideFuncs:
                - hmap_next.3318
                - time_msec
                - vlog
                - time_msec
                - vlog
                - vlog_is_enabled
                - log_backtrace_at
        - Branch String:   'lib/cooperative-multitasking.c:122,22'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:122,25'
              BranchSideFuncs:
                - vlog_is_enabled
                - hmap_next.3318
                - time_msec
                - vlog
                - time_msec
                - vlog
                - log_backtrace_at
            - BranchSide:      'lib/cooperative-multitasking.c:126,15'
              BranchSideFuncs:
                - hmap_next.3318
                - time_msec
                - vlog
                - time_msec
                - vlog_is_enabled
                - log_backtrace_at
                - vlog
        - Branch String:   'lib/cooperative-multitasking.c:122,17'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:123,17'
              BranchSideFuncs:
                - log_backtrace_at
                - hmap_next.3318
                - time_msec
                - vlog
                - time_msec
                - vlog_is_enabled
                - vlog
            - BranchSide:      'lib/cooperative-multitasking.c:126,15'
              BranchSideFuncs:
                - hmap_next.3318
                - time_msec
                - vlog
                - time_msec
                - vlog_is_enabled
                - log_backtrace_at
                - vlog
        - Branch String:   'lib/cooperative-multitasking.c:131,9'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:131,9'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/cooperative-multitasking.c:132,9'
              BranchSideFuncs:
                - vlog
        - Branch String:   'lib/cooperative-multitasking.c:132,9'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:132,9'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/cooperative-multitasking.c:133,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/cooperative-multitasking.c:106,27'
          Dst:             time_msec
        - Src:             'lib/cooperative-multitasking.c:111,5'
          Dst:             hmap_first
        - Src:             'lib/cooperative-multitasking.c:112,19'
          Dst:             time_msec
        - Src:             'lib/cooperative-multitasking.c:117,13'
          Dst:             vlog
        - Src:             'lib/cooperative-multitasking.c:122,25'
          Dst:             vlog_is_enabled
        - Src:             'lib/cooperative-multitasking.c:123,17'
          Dst:             log_backtrace_at
        - Src:             'lib/cooperative-multitasking.c:111,5'
          Dst:             hmap_next
        - Src:             'lib/cooperative-multitasking.c:130,15'
          Dst:             time_msec
        - Src:             'lib/cooperative-multitasking.c:132,9'
          Dst:             vlog
    - functionName:    hmap_first
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:417,12'
          Dst:             hmap_next__
    - functionName:    hmap_next
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_next__
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:430,13'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:431,15'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:432,27'
              BranchSideFuncs:
                - hmap_next__.3314
      Callsites:
        - Src:             './include/openvswitch/hmap.h:432,15'
          Dst:             hmap_next__
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - once
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/thread.h:161,12'
          Branch Sides:
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs:
                - ovsthread_once_start__
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    cooperative_multitasking_yield_at
      functionSourceFile: '/src/openvswitch/lib/cooperative-multitasking.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - source_location
      BBCount:         19
      ICount:          72
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - cooperative_multitasking_yield_at__
        - log_backtrace_at
        - ovsthread_once_done
        - ovsthread_once_start
        - vlog
        - vlog_is_enabled
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/cooperative-multitasking.c:143,9'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:144,9'
              BranchSideFuncs:
                - ovsthread_once_start.3320
                - vlog_is_enabled
                - log_backtrace_at
                - vlog
                - vlog
                - ovsthread_once_done
            - BranchSide:      'lib/cooperative-multitasking.c:152,23'
              BranchSideFuncs:
                - cooperative_multitasking_yield_at__
        - Branch String:   'lib/cooperative-multitasking.c:144,9'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:144,9'
              BranchSideFuncs:
                - vlog
                - ovsthread_once_done
                - vlog_is_enabled
                - log_backtrace_at
                - vlog
            - BranchSide:      'lib/cooperative-multitasking.c:146,13'
              BranchSideFuncs:
                - vlog_is_enabled
                - log_backtrace_at
                - vlog
        - Branch String:   'lib/cooperative-multitasking.c:146,13'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:147,13'
              BranchSideFuncs:
                - log_backtrace_at
                - vlog
            - BranchSide:      'lib/cooperative-multitasking.c:150,9'
              BranchSideFuncs: []
        - Branch String:   'lib/cooperative-multitasking.c:147,13'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:147,13'
              BranchSideFuncs:
                - vlog
                - log_backtrace_at
            - BranchSide:      'lib/cooperative-multitasking.c:148,13'
              BranchSideFuncs:
                - log_backtrace_at
      Callsites:
        - Src:             'lib/cooperative-multitasking.c:144,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/cooperative-multitasking.c:144,9'
          Dst:             vlog
        - Src:             'lib/cooperative-multitasking.c:144,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/cooperative-multitasking.c:146,13'
          Dst:             vlog_is_enabled
        - Src:             'lib/cooperative-multitasking.c:147,13'
          Dst:             vlog
        - Src:             'lib/cooperative-multitasking.c:148,13'
          Dst:             log_backtrace_at
        - Src:             'lib/cooperative-multitasking.c:154,5'
          Dst:             cooperative_multitasking_yield_at__
    - functionName:    cooperative_multitasking_remove
      functionSourceFile: '/src/openvswitch/lib/cooperative-multitasking.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cb
        - arg
      BBCount:         16
      ICount:          87
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - hash_pointer
        - hmap_first_with_hash
        - hmap_next_with_hash
        - hmap_remove
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/cooperative-multitasking.c:93,5'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:93,5'
              BranchSideFuncs:
                - hmap_next_with_hash.3329
                - hmap_remove.3328
                - free
            - BranchSide:      'lib/cooperative-multitasking.c:93,5'
              BranchSideFuncs:
                - hmap_next_with_hash.3329
                - hmap_remove.3328
                - free
        - Branch String:   'lib/cooperative-multitasking.c:93,5'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:93,5'
              BranchSideFuncs:
                - hmap_next_with_hash.3329
                - hmap_remove.3328
                - free
            - BranchSide:      'lib/cooperative-multitasking.c:95,13'
              BranchSideFuncs:
                - hmap_next_with_hash.3329
                - hmap_remove.3328
                - free
        - Branch String:   'lib/cooperative-multitasking.c:95,32'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:95,35'
              BranchSideFuncs:
                - hmap_next_with_hash.3329
                - hmap_remove.3328
                - free
            - BranchSide:      'lib/cooperative-multitasking.c:100,5'
              BranchSideFuncs:
                - hmap_next_with_hash.3329
                - hmap_remove.3328
                - free
        - Branch String:   'lib/cooperative-multitasking.c:95,13'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:96,63'
              BranchSideFuncs:
                - hmap_remove.3328
                - free
            - BranchSide:      'lib/cooperative-multitasking.c:100,5'
              BranchSideFuncs:
                - hmap_next_with_hash.3329
                - hmap_remove.3328
                - free
      Callsites:
        - Src:             'lib/cooperative-multitasking.c:93,5'
          Dst:             hash_pointer
        - Src:             'lib/cooperative-multitasking.c:93,5'
          Dst:             hmap_first_with_hash
        - Src:             'lib/cooperative-multitasking.c:96,13'
          Dst:             hmap_remove
        - Src:             'lib/cooperative-multitasking.c:93,5'
          Dst:             hmap_next_with_hash
    - functionName:    hash_pointer
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - p
        - basis
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_int
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:149,12'
          Dst:             hash_int
    - functionName:    hmap_first_with_hash
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - hash
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next_with_hash__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:360,12'
          Dst:             hmap_next_with_hash__
    - functionName:    hmap_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
      BBCount:         4
      ICount:          51
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:319,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:320,21'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:322,15'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    hmap_next_with_hash
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - node
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next_with_hash__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:396,12'
          Dst:             hmap_next_with_hash__
    - functionName:    hmap_insert_at
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
        - hash
        - where
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_expand_at
        - hmap_insert_fast
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:308,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:308,9'
              BranchSideFuncs:
                - hmap_expand_at
            - BranchSide:      './include/openvswitch/hmap.h:309,24'
              BranchSideFuncs:
                - hmap_expand_at
      Callsites:
        - Src:             './include/openvswitch/hmap.h:307,5'
          Dst:             hmap_insert_fast
        - Src:             './include/openvswitch/hmap.h:309,9'
          Dst:             hmap_expand_at
    - functionName:    cooperative_multitasking_set
      functionSourceFile: '/src/openvswitch/lib/cooperative-multitasking.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - cb
        - arg
        - last_run
        - threshold
        - name
      BBCount:         25
      ICount:          161
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - hash_pointer
        - hmap_first_with_hash
        - hmap_insert_at
        - hmap_next_with_hash
        - time_msec
        - xzalloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/cooperative-multitasking.c:62,5'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:62,5'
              BranchSideFuncs:
                - xzalloc
                - time_msec
                - hash_pointer
                - hmap_insert_at.3330
                - hmap_next_with_hash.3329
            - BranchSide:      'lib/cooperative-multitasking.c:62,5'
              BranchSideFuncs:
                - xzalloc
                - time_msec
                - hash_pointer
                - hmap_insert_at.3330
                - hmap_next_with_hash.3329
        - Branch String:   'lib/cooperative-multitasking.c:62,5'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:64,13'
              BranchSideFuncs:
                - hmap_next_with_hash.3329
                - xzalloc
                - time_msec
                - hash_pointer
                - hmap_insert_at.3330
            - BranchSide:      'lib/cooperative-multitasking.c:76,16'
              BranchSideFuncs:
                - xzalloc
                - time_msec
                - hash_pointer
                - hmap_insert_at.3330
        - Branch String:   'lib/cooperative-multitasking.c:64,32'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:64,35'
              BranchSideFuncs:
                - hmap_next_with_hash.3329
                - xzalloc
                - time_msec
                - hash_pointer
                - hmap_insert_at.3330
            - BranchSide:      'lib/cooperative-multitasking.c:74,5'
              BranchSideFuncs:
                - hmap_next_with_hash.3329
                - xzalloc
                - time_msec
                - hash_pointer
                - hmap_insert_at.3330
        - Branch String:   'lib/cooperative-multitasking.c:64,13'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:65,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/cooperative-multitasking.c:74,5'
              BranchSideFuncs:
                - hmap_next_with_hash.3329
                - xzalloc
                - time_msec
                - hash_pointer
                - hmap_insert_at.3330
        - Branch String:   'lib/cooperative-multitasking.c:65,17'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:66,38'
              BranchSideFuncs: []
            - BranchSide:      'lib/cooperative-multitasking.c:69,17'
              BranchSideFuncs: []
        - Branch String:   'lib/cooperative-multitasking.c:69,17'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:70,39'
              BranchSideFuncs: []
            - BranchSide:      'lib/cooperative-multitasking.c:72,13'
              BranchSideFuncs: []
        - Branch String:   'lib/cooperative-multitasking.c:80,26'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:80,37'
              BranchSideFuncs:
                - hash_pointer
                - hmap_insert_at.3330
            - BranchSide:      'lib/cooperative-multitasking.c:80,48'
              BranchSideFuncs:
                - time_msec
                - hash_pointer
                - hmap_insert_at.3330
      Callsites:
        - Src:             'lib/cooperative-multitasking.c:62,5'
          Dst:             hash_pointer
        - Src:             'lib/cooperative-multitasking.c:62,5'
          Dst:             hmap_first_with_hash
        - Src:             'lib/cooperative-multitasking.c:62,5'
          Dst:             hmap_next_with_hash
        - Src:             'lib/cooperative-multitasking.c:76,16'
          Dst:             xzalloc
        - Src:             'lib/cooperative-multitasking.c:80,48'
          Dst:             time_msec
        - Src:             'lib/cooperative-multitasking.c:83,5'
          Dst:             hash_pointer
        - Src:             'lib/cooperative-multitasking.c:83,5'
          Dst:             hmap_insert_at
    - functionName:    cooperative_multitasking_destroy
      functionSourceFile: '/src/openvswitch/lib/cooperative-multitasking.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          58
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - hmap_first
        - hmap_next
        - hmap_remove
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/cooperative-multitasking.c:37,5'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:36,22'
              BranchSideFuncs:
                - hmap_first.3315
                - hmap_remove.3328
                - free
                - hmap_next.3318
            - BranchSide:      'lib/cooperative-multitasking.c:37,5'
              BranchSideFuncs:
                - hmap_first.3315
                - hmap_remove.3328
                - free
                - hmap_next.3318
        - Branch String:   'lib/cooperative-multitasking.c:37,5'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:37,5'
              BranchSideFuncs:
                - hmap_next.3318
                - hmap_remove.3328
                - free
            - BranchSide:      'lib/cooperative-multitasking.c:37,5'
              BranchSideFuncs:
                - hmap_remove.3328
                - free
                - hmap_next.3318
        - Branch String:   'lib/cooperative-multitasking.c:37,5'
          Branch Sides:
            - BranchSide:      'lib/cooperative-multitasking.c:38,59'
              BranchSideFuncs:
                - hmap_remove.3328
                - free
                - hmap_next.3318
            - BranchSide:      'lib/cooperative-multitasking.c:41,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/cooperative-multitasking.c:37,5'
          Dst:             hmap_first
        - Src:             'lib/cooperative-multitasking.c:37,5'
          Dst:             hmap_next
        - Src:             'lib/cooperative-multitasking.c:38,9'
          Dst:             hmap_remove
    - functionName:    init_this_module_coverage
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/coverage.c:29,1'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:29,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/coverage.c:29,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/coverage.c:29,1'
          Dst:             vlog_insert_module
    - functionName:    coverage_clear_time_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    coverage_clear_time_get
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_clear_time_get_unsafe
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/coverage.c:38,1'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:38,1'
              BranchSideFuncs:
                - coverage_clear_time_get_unsafe
            - BranchSide:      'lib/coverage.c:38,1'
              BranchSideFuncs:
                - coverage_clear_time_get_unsafe
      Callsites:
        - Src:             'lib/coverage.c:38,1'
          Dst:             coverage_clear_time_get_unsafe
    - functionName:    coverage_array_sum
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - arr
        - len
      BBCount:         7
      ICount:          51
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/coverage.c:392,5'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:393,16'
              BranchSideFuncs:
                - ovs_mutex_unlock
            - BranchSide:      'lib/coverage.c:395,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/coverage.c:391,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/coverage.c:395,5'
          Dst:             ovs_mutex_unlock
    - functionName:    hash_rot
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - x
        - k
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mhash_add__
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_rot
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/hash.h:66,9'
          Branch Sides:
            - BranchSide:      'lib/hash.h:67,16'
              BranchSideFuncs:
                - hash_rot.3394
            - BranchSide:      'lib/hash.h:70,10'
              BranchSideFuncs:
                - hash_rot.3394
      Callsites:
        - Src:             'lib/hash.h:71,12'
          Dst:             hash_rot
    - functionName:    mhash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_rot
        - mhash_add__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:78,12'
          Dst:             mhash_add__
        - Src:             'lib/hash.h:79,12'
          Dst:             hash_rot
    - functionName:    mhash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - hash
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:109,12'
          Dst:             mhash_add
    - functionName:    hash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - final
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:119,12'
          Dst:             mhash_finish
    - functionName:    hash_2words
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - x
        - y
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add
        - hash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:154,33'
          Dst:             hash_add
        - Src:             'lib/hash.h:154,24'
          Dst:             hash_add
        - Src:             'lib/hash.h:154,12'
          Dst:             hash_finish
    - functionName:    hash_string
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - s
        - basis
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_bytes
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:404,26'
          Dst:             strlen
        - Src:             'lib/hash.h:404,12'
          Dst:             hash_bytes
    - functionName:    hash_int
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - x
        - basis
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_2words
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:409,12'
          Dst:             hash_2words
    - functionName:    compare_coverage_counters
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a_
        - b_
      BBCount:         6
      ICount:          73
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/coverage.c:114,9'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:115,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/coverage.c:117,23'
              BranchSideFuncs:
                - strcmp
      Callsites:
        - Src:             'lib/coverage.c:117,16'
          Dst:             strcmp
    - functionName:    coverage_read_counter
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 416
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - count
      BBCount:         10
      ICount:          80
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - strcmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/coverage.c:402,5'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:403,38'
              BranchSideFuncs:
                - strcmp
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
            - BranchSide:      'lib/coverage.c:415,5'
              BranchSideFuncs: []
        - Branch String:   'lib/coverage.c:405,13'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:406,13'
              BranchSideFuncs:
                - strcmp
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
            - BranchSide:      'lib/coverage.c:413,5'
              BranchSideFuncs:
                - strcmp
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/coverage.c:405,14'
          Dst:             strcmp
        - Src:             'lib/coverage.c:406,13'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/coverage.c:409,13'
          Dst:             ovs_mutex_unlock
    - functionName:    coverage_run
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 383
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         23
      ICount:          234
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - time_msec
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/coverage.c:330,35'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:330,31'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - time_msec
                - ovs_mutex_unlock
            - BranchSide:      'lib/coverage.c:330,35'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - time_msec
                - ovs_mutex_unlock
        - Branch String:   'lib/coverage.c:336,9'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:337,29'
              BranchSideFuncs:
                - ovs_mutex_unlock
            - BranchSide:      'lib/coverage.c:340,9'
              BranchSideFuncs:
                - ovs_mutex_unlock
        - Branch String:   'lib/coverage.c:340,9'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:340,9'
              BranchSideFuncs:
                - ovs_mutex_unlock
            - BranchSide:      'lib/coverage.c:345,22'
              BranchSideFuncs:
                - ovs_mutex_unlock
        - Branch String:   'lib/coverage.c:347,9'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:349,32'
              BranchSideFuncs:
                - ovs_mutex_unlock
            - BranchSide:      'lib/coverage.c:378,22'
              BranchSideFuncs:
                - ovs_mutex_unlock
        - Branch String:   'lib/coverage.c:359,13'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:364,38'
              BranchSideFuncs:
                - ovs_mutex_unlock
            - BranchSide:      'lib/coverage.c:375,9'
              BranchSideFuncs:
                - ovs_mutex_unlock
        - Branch String:   'lib/coverage.c:367,47'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:367,44'
              BranchSideFuncs:
                - ovs_mutex_unlock
            - BranchSide:      'lib/coverage.c:368,49'
              BranchSideFuncs:
                - ovs_mutex_unlock
        - Branch String:   'lib/coverage.c:369,35'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:370,37'
              BranchSideFuncs:
                - ovs_mutex_unlock
            - BranchSide:      'lib/coverage.c:371,38'
              BranchSideFuncs:
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/coverage.c:333,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/coverage.c:334,11'
          Dst:             time_msec
        - Src:             'lib/coverage.c:382,5'
          Dst:             ovs_mutex_unlock
    - functionName:    coverage_try_clear
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_clear__
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/coverage.c:320,5'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:320,5'
              BranchSideFuncs:
                - coverage_clear__
            - BranchSide:      'lib/coverage.c:320,5'
              BranchSideFuncs:
                - coverage_clear__
      Callsites:
        - Src:             'lib/coverage.c:320,5'
          Dst:             coverage_clear__
    - functionName:    coverage_clear__
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - bool
      constantsTouched: []
      argNames:
        - trylock
      BBCount:         18
      ICount:          115
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - coverage_clear_time_get
        - ovs_mutex_lock_at
        - ovs_mutex_trylock_at
        - ovs_mutex_unlock
        - time_msec
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/coverage.c:286,9'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:287,24'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_trylock_at
            - BranchSide:      'lib/coverage.c:290,9'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_trylock_at
        - Branch String:   'lib/coverage.c:290,9'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:290,9'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_trylock_at
            - BranchSide:      'lib/coverage.c:293,13'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovs_mutex_trylock_at
        - Branch String:   'lib/coverage.c:293,13'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:295,17'
              BranchSideFuncs:
                - ovs_mutex_trylock_at
                - ovs_mutex_unlock
            - BranchSide:      'lib/coverage.c:299,13'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
        - Branch String:   'lib/coverage.c:295,17'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:296,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/coverage.c:298,9'
              BranchSideFuncs:
                - ovs_mutex_unlock
        - Branch String:   'lib/coverage.c:302,9'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:303,42'
              BranchSideFuncs:
                - ovs_mutex_unlock
            - BranchSide:      'lib/coverage.c:306,9'
              BranchSideFuncs:
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/coverage.c:282,11'
          Dst:             time_msec
        - Src:             'lib/coverage.c:283,19'
          Dst:             coverage_clear_time_get
        - Src:             'lib/coverage.c:295,17'
          Dst:             ovs_mutex_trylock_at
        - Src:             'lib/coverage.c:299,13'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/coverage.c:306,9'
          Dst:             ovs_mutex_unlock
    - functionName:    coverage_clear
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 315
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_clear__
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/coverage.c:314,5'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:314,5'
              BranchSideFuncs:
                - coverage_clear__
            - BranchSide:      'lib/coverage.c:314,5'
              BranchSideFuncs:
                - coverage_clear__
      Callsites:
        - Src:             'lib/coverage.c:314,5'
          Dst:             coverage_clear__
    - functionName:    coverage_read
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 267
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lines
      BBCount:         14
      ICount:          151
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - coverage_array_sum
        - coverage_hash
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - svec_add_nocopy
        - xasprintf
        - xmalloc
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/coverage.c:241,5'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:242,21'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - xasprintf
                - svec_add_nocopy
                - free
                - coverage_array_sum
                - coverage_array_sum
                - xasprintf
                - svec_add_nocopy
            - BranchSide:      'lib/coverage.c:244,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - xasprintf
                - svec_add_nocopy
                - free
                - coverage_array_sum
                - coverage_array_sum
                - xasprintf
                - svec_add_nocopy
        - Branch String:   'lib/coverage.c:246,5'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:247,13'
              BranchSideFuncs:
                - xasprintf
                - svec_add_nocopy
                - free
                - coverage_array_sum
                - coverage_array_sum
                - xasprintf
                - svec_add_nocopy
            - BranchSide:      'lib/coverage.c:265,21'
              BranchSideFuncs:
                - xasprintf
                - svec_add_nocopy
                - free
        - Branch String:   'lib/coverage.c:247,13'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:251,29'
              BranchSideFuncs:
                - coverage_array_sum
                - coverage_array_sum
                - xasprintf
                - svec_add_nocopy
                - xasprintf
                - svec_add_nocopy
                - free
            - BranchSide:      'lib/coverage.c:261,24'
              BranchSideFuncs:
                - xasprintf
                - svec_add_nocopy
                - free
                - coverage_array_sum
                - coverage_array_sum
                - xasprintf
                - svec_add_nocopy
      Callsites:
        - Src:             'lib/coverage.c:230,12'
          Dst:             coverage_hash
        - Src:             'lib/coverage.c:234,21'
          Dst:             xasprintf
        - Src:             'lib/coverage.c:233,5'
          Dst:             svec_add_nocopy
        - Src:             'lib/coverage.c:239,14'
          Dst:             xmalloc
        - Src:             'lib/coverage.c:240,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/coverage.c:244,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/coverage.c:257,27'
          Dst:             coverage_array_sum
        - Src:             'lib/coverage.c:258,27'
          Dst:             coverage_array_sum
        - Src:             'lib/coverage.c:252,17'
          Dst:             xasprintf
        - Src:             'lib/coverage.c:251,13'
          Dst:             svec_add_nocopy
        - Src:             'lib/coverage.c:265,28'
          Dst:             xasprintf
        - Src:             'lib/coverage.c:265,5'
          Dst:             svec_add_nocopy
    - functionName:    coverage_hash
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         20
      ICount:          151
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - compare_coverage_counters
        - hash_int
        - hash_string
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - qsort
        - xmalloc
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/coverage.c:125,14'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:124,31'
              BranchSideFuncs:
                - xmalloc
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - qsort
                - free
                - hash_int.3402
                - hash_int.3402
                - hash_string.3401
            - BranchSide:      'lib/coverage.c:131,17'
              BranchSideFuncs:
                - xmalloc
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - qsort
                - free
                - hash_int.3402
                - hash_int.3402
                - hash_string.3401
        - Branch String:   'lib/coverage.c:131,5'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:132,16'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - qsort
                - free
                - hash_int.3402
                - hash_int.3402
                - hash_string.3401
            - BranchSide:      'lib/coverage.c:134,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - qsort
                - free
                - hash_int.3402
                - hash_int.3402
                - hash_string.3401
        - Branch String:   'lib/coverage.c:139,5'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:139,5'
              BranchSideFuncs:
                - free
                - hash_int.3402
                - hash_int.3402
                - hash_string.3401
            - BranchSide:      'lib/coverage.c:142,14'
              BranchSideFuncs:
                - free
                - hash_int.3402
                - hash_int.3402
                - hash_string.3401
        - Branch String:   'lib/coverage.c:142,13'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:143,13'
              BranchSideFuncs:
                - hash_int.3402
                - free
                - hash_int.3402
                - hash_string.3401
            - BranchSide:      'lib/coverage.c:145,17'
              BranchSideFuncs:
                - hash_int.3402
                - free
                - hash_int.3402
                - hash_string.3401
        - Branch String:   'lib/coverage.c:147,9'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:148,17'
              BranchSideFuncs:
                - hash_string.3401
                - free
                - hash_int.3402
                - hash_int.3402
            - BranchSide:      'lib/coverage.c:153,13'
              BranchSideFuncs:
                - free
                - hash_int.3402
                - hash_int.3402
                - hash_string.3401
        - Branch String:   'lib/coverage.c:148,17'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:149,17'
              BranchSideFuncs:
                - free
                - hash_int.3402
                - hash_int.3402
                - hash_string.3401
            - BranchSide:      'lib/coverage.c:151,32'
              BranchSideFuncs:
                - hash_string.3401
                - free
                - hash_int.3402
                - hash_int.3402
      Callsites:
        - Src:             'lib/coverage.c:129,9'
          Dst:             xmalloc
        - Src:             'lib/coverage.c:130,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/coverage.c:134,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/coverage.c:135,5'
          Dst:             qsort
        - Src:             'lib/coverage.c:135,5'
          Dst:             compare_coverage_counters
        - Src:             'lib/coverage.c:146,16'
          Dst:             hash_int
        - Src:             'lib/coverage.c:151,20'
          Dst:             hash_string
        - Src:             'lib/coverage.c:158,12'
          Dst:             hash_int
    - functionName:    coverage_hit
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - hash
      BBCount:         9
      ICount:          75
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - time_msec
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/coverage.c:175,9'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:176,9'
              BranchSideFuncs:
                - time_msec
            - BranchSide:      'lib/coverage.c:180,13'
              BranchSideFuncs: []
        - Branch String:   'lib/coverage.c:180,9'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:181,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/coverage.c:183,28'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/coverage.c:175,9'
          Dst:             time_msec
        - Src:             'lib/coverage.c:177,22'
          Dst:             time_msec
    - functionName:    coverage_log
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         26
      ICount:          118
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - coverage_hash
        - coverage_hit
        - coverage_read
        - svec_destroy
        - svec_init
        - vlog
        - vlog_should_drop
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/coverage.c:200,10'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:200,10'
              BranchSideFuncs:
                - vlog_should_drop
                - coverage_hash
                - coverage_hit
                - svec_init
                - coverage_read
                - svec_destroy
                - vlog
                - vlog
            - BranchSide:      'lib/coverage.c:200,10'
              BranchSideFuncs:
                - vlog_should_drop
                - coverage_hash
                - coverage_hit
                - svec_init
                - coverage_read
                - svec_destroy
                - vlog
                - vlog
        - Branch String:   'lib/coverage.c:200,9'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:200,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/coverage.c:201,25'
              BranchSideFuncs:
                - coverage_hash
                - coverage_hit
                - svec_init
                - coverage_read
                - svec_destroy
                - vlog
                - vlog
        - Branch String:   'lib/coverage.c:202,13'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:203,13'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/coverage.c:210,13'
              BranchSideFuncs:
                - svec_init
                - coverage_read
                - svec_destroy
                - vlog
        - Branch String:   'lib/coverage.c:203,13'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:203,13'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/coverage.c:205,9'
              BranchSideFuncs: []
        - Branch String:   'lib/coverage.c:212,13'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:212,13'
              BranchSideFuncs:
                - svec_destroy
                - vlog
            - BranchSide:      'lib/coverage.c:212,13'
              BranchSideFuncs:
                - svec_destroy
                - vlog
        - Branch String:   'lib/coverage.c:212,13'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:213,17'
              BranchSideFuncs:
                - svec_destroy
                - vlog
            - BranchSide:      'lib/coverage.c:215,13'
              BranchSideFuncs:
                - svec_destroy
        - Branch String:   'lib/coverage.c:213,17'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:213,17'
              BranchSideFuncs:
                - vlog
                - svec_destroy
            - BranchSide:      'lib/coverage.c:214,13'
              BranchSideFuncs:
                - svec_destroy
                - vlog
      Callsites:
        - Src:             'lib/coverage.c:200,10'
          Dst:             vlog_should_drop
        - Src:             'lib/coverage.c:201,25'
          Dst:             coverage_hash
        - Src:             'lib/coverage.c:202,13'
          Dst:             coverage_hit
        - Src:             'lib/coverage.c:203,13'
          Dst:             vlog
        - Src:             'lib/coverage.c:210,13'
          Dst:             svec_init
        - Src:             'lib/coverage.c:211,13'
          Dst:             coverage_read
        - Src:             'lib/coverage.c:213,17'
          Dst:             vlog
        - Src:             'lib/coverage.c:215,13'
          Dst:             svec_destroy
    - functionName:    coverage_unixctl_read_counter
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
        - argc
        - argv
        - aux
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - coverage_read_counter
        - unixctl_command_reply
        - unixctl_command_reply_error
        - xasprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/coverage.c:86,9'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:87,37'
              BranchSideFuncs:
                - xasprintf
                - unixctl_command_reply
                - free
            - BranchSide:      'lib/coverage.c:91,33'
              BranchSideFuncs:
                - xasprintf
                - unixctl_command_reply
                - free
      Callsites:
        - Src:             'lib/coverage.c:85,10'
          Dst:             coverage_read_counter
        - Src:             'lib/coverage.c:87,9'
          Dst:             unixctl_command_reply_error
        - Src:             'lib/coverage.c:91,13'
          Dst:             xasprintf
        - Src:             'lib/coverage.c:92,5'
          Dst:             unixctl_command_reply
    - functionName:    coverage_unixctl_show
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - conn
        - argc
        - argv
        - aux
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_read
        - svec_destroy
        - svec_init
        - svec_join
        - unixctl_command_reply
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/coverage.c:69,5'
          Dst:             svec_init
        - Src:             'lib/coverage.c:70,5'
          Dst:             coverage_read
        - Src:             'lib/coverage.c:71,13'
          Dst:             svec_join
        - Src:             'lib/coverage.c:72,5'
          Dst:             unixctl_command_reply
        - Src:             'lib/coverage.c:74,5'
          Dst:             svec_destroy
    - functionName:    coverage_init
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_unixctl_read_counter
        - coverage_unixctl_show
        - unixctl_command_register
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/coverage.c:99,5'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:99,5'
              BranchSideFuncs:
                - unixctl_command_register
                - unixctl_command_register
            - BranchSide:      'lib/coverage.c:99,5'
              BranchSideFuncs:
                - unixctl_command_register
                - unixctl_command_register
      Callsites:
        - Src:             'lib/coverage.c:99,5'
          Dst:             unixctl_command_register
        - Src:             'lib/coverage.c:99,5'
          Dst:             coverage_unixctl_show
        - Src:             'lib/coverage.c:101,5'
          Dst:             unixctl_command_register
        - Src:             'lib/coverage.c:101,5'
          Dst:             coverage_unixctl_read_counter
    - functionName:    coverage_counter_register
      functionSourceFile: '/src/openvswitch/lib/coverage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - counter
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - x2nrealloc
      functionUses:    18
      BranchProfiles:
        - Branch String:   'lib/coverage.c:54,9'
          Branch Sides:
            - BranchSide:      'lib/coverage.c:54,9'
              BranchSideFuncs:
                - x2nrealloc
            - BranchSide:      'lib/coverage.c:55,40'
              BranchSideFuncs:
                - x2nrealloc
      Callsites:
        - Src:             'lib/coverage.c:55,29'
          Dst:             x2nrealloc
    - functionName:    ds_clone
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 525
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - dst
        - source
      BBCount:         6
      ICount:          64
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_init
        - xmalloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/dynamic-string.c:517,9'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:518,17'
              BranchSideFuncs:
                - xmalloc
            - BranchSide:      'lib/dynamic-string.c:521,19'
              BranchSideFuncs:
                - xmalloc
      Callsites:
        - Src:             'lib/dynamic-string.c:518,9'
          Dst:             ds_init
        - Src:             'lib/dynamic-string.c:523,19'
          Dst:             xmalloc
    - functionName:    ds_init
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ds
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    15
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ds_chomp
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 505
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ds
        - c
      BBCount:         7
      ICount:          59
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/dynamic-string.c:506,24'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:506,27'
              BranchSideFuncs: []
            - BranchSide:      'lib/dynamic-string.c:510,9'
              BranchSideFuncs: []
        - Branch String:   'lib/dynamic-string.c:506,9'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:507,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/dynamic-string.c:510,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ds_last
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 500
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ds
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/dynamic-string.c:500,12'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:500,45'
              BranchSideFuncs: []
            - BranchSide:      'lib/dynamic-string.c:500,12'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ds_put_sparse_hex_dump
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 493
      functionLinenumberEnd: 495
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ds
        - buf_
        - size
        - ofs
        - ascii
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_put_hex_dump__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:494,5'
          Dst:             ds_put_hex_dump__
    - functionName:    ds_put_hex_dump__
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 475
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - bool
        - bool
      constantsTouched: []
      argNames:
        - ds
        - buf_
        - size
        - ofs
        - ascii
        - skip_zero_lines
      BBCount:         48
      ICount:          283
      EdgeCount:       61
      CyclomaticComplexity: 15
      functionsReached:
        - ds_chomp
        - ds_put_char
        - ds_put_format
        - is_all_zeros
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/dynamic-string.c:428,5'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:433,17'
              BranchSideFuncs:
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - is_all_zeros
            - BranchSide:      'lib/dynamic-string.c:475,1'
              BranchSideFuncs: []
        - Branch String:   'lib/dynamic-string.c:435,13'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:436,19'
              BranchSideFuncs:
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - is_all_zeros
            - BranchSide:      'lib/dynamic-string.c:437,13'
              BranchSideFuncs:
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - is_all_zeros
        - Branch String:   'lib/dynamic-string.c:439,29'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:439,46'
              BranchSideFuncs:
                - is_all_zeros
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
            - BranchSide:      'lib/dynamic-string.c:444,23'
              BranchSideFuncs:
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - is_all_zeros
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
        - Branch String:   'lib/dynamic-string.c:439,13'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:440,13'
              BranchSideFuncs:
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - is_all_zeros
            - BranchSide:      'lib/dynamic-string.c:444,23'
              BranchSideFuncs:
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - is_all_zeros
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
        - Branch String:   'lib/dynamic-string.c:446,9'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:447,27'
              BranchSideFuncs:
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - ds_put_format
                - is_all_zeros
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
                - ds_put_format
            - BranchSide:      'lib/dynamic-string.c:449,9'
              BranchSideFuncs:
                - ds_chomp
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - is_all_zeros
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
                - ds_put_format
        - Branch String:   'lib/dynamic-string.c:449,9'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:450,27'
              BranchSideFuncs:
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - is_all_zeros
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
            - BranchSide:      'lib/dynamic-string.c:453,13'
              BranchSideFuncs:
                - ds_chomp
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - is_all_zeros
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
        - Branch String:   'lib/dynamic-string.c:453,13'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:454,13'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - ds_put_format
                - is_all_zeros
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
            - BranchSide:      'lib/dynamic-string.c:467,22'
              BranchSideFuncs:
                - ds_chomp
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - is_all_zeros
        - Branch String:   'lib/dynamic-string.c:454,13'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:455,31'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - ds_put_format
                - is_all_zeros
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
            - BranchSide:      'lib/dynamic-string.c:456,27'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - is_all_zeros
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
        - Branch String:   'lib/dynamic-string.c:457,13'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:458,31'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - is_all_zeros
                - ds_put_format
                - ds_put_char.3512
            - BranchSide:      'lib/dynamic-string.c:459,13'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - is_all_zeros
                - ds_put_format
                - ds_put_char.3512
        - Branch String:   'lib/dynamic-string.c:459,13'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:460,25'
              BranchSideFuncs:
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - is_all_zeros
                - ds_put_format
            - BranchSide:      'lib/dynamic-string.c:463,13'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - is_all_zeros
                - ds_put_format
        - Branch String:   'lib/dynamic-string.c:461,41'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:461,44'
              BranchSideFuncs:
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - is_all_zeros
                - ds_put_format
            - BranchSide:      'lib/dynamic-string.c:461,33'
              BranchSideFuncs:
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - is_all_zeros
                - ds_put_format
        - Branch String:   'lib/dynamic-string.c:461,33'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:459,30'
              BranchSideFuncs:
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - is_all_zeros
                - ds_put_format
            - BranchSide:      'lib/dynamic-string.c:461,54'
              BranchSideFuncs:
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - is_all_zeros
                - ds_put_format
        - Branch String:   'lib/dynamic-string.c:463,13'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:464,31'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - is_all_zeros
            - BranchSide:      'lib/dynamic-string.c:465,27'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_chomp
                - ds_put_format
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - ds_put_format
                - is_all_zeros
      Callsites:
        - Src:             'lib/dynamic-string.c:439,32'
          Dst:             is_all_zeros
        - Src:             'lib/dynamic-string.c:444,9'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:447,13'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:450,13'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:455,17'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:456,13'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:458,17'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:461,17'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:464,17'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:465,13'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:467,13'
          Dst:             ds_chomp
        - Src:             'lib/dynamic-string.c:469,9'
          Dst:             ds_put_format
    - functionName:    ds_put_format
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 145
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ds
        - format
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_put_format_valist
      functionUses:    76
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:143,5'
          Dst:             ds_put_format_valist
    - functionName:    ds_put_char
      functionSourceFile: '/src/openvswitch/./include/openvswitch/dynamic-string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ds
        - c
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_put_char__
      functionUses:    14
      BranchProfiles:
        - Branch String:   './include/openvswitch/dynamic-string.h:95,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/dynamic-string.h:96,36'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/dynamic-string.h:99,23'
              BranchSideFuncs:
                - ds_put_char__
      Callsites:
        - Src:             './include/openvswitch/dynamic-string.h:99,9'
          Dst:             ds_put_char__
    - functionName:    ds_put_char__
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ds
        - c
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_put_uninit
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:83,6'
          Dst:             ds_put_uninit
    - functionName:    ds_put_uninit
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ds
        - n
      BBCount:         3
      ICount:          47
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_reserve
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:74,5'
          Dst:             ds_reserve
    - functionName:    ds_reserve
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ds
        - min_length
      BBCount:         15
      ICount:          99
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - xrealloc
      functionUses:    10
      BranchProfiles:
        - Branch String:   'lib/dynamic-string.c:61,36'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:61,40'
              BranchSideFuncs:
                - xrealloc
            - BranchSide:      'lib/dynamic-string.c:62,26'
              BranchSideFuncs:
                - xrealloc
        - Branch String:   'lib/dynamic-string.c:61,9'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:61,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/dynamic-string.c:62,26'
              BranchSideFuncs:
                - xrealloc
        - Branch String:   'lib/dynamic-string.c:62,26'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:62,9'
              BranchSideFuncs:
                - xrealloc
            - BranchSide:      'lib/dynamic-string.c:62,9'
              BranchSideFuncs:
                - xrealloc
        - Branch String:   'lib/dynamic-string.c:63,25'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:63,9'
              BranchSideFuncs:
                - xrealloc
            - BranchSide:      'lib/dynamic-string.c:63,9'
              BranchSideFuncs:
                - xrealloc
      Callsites:
        - Src:             'lib/dynamic-string.c:64,22'
          Dst:             xrealloc
    - functionName:    ds_put_format_valist
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ds
        - format
        - args_
      BBCount:         12
      ICount:          148
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ds_reserve
        - vsnprintf
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/dynamic-string.c:155,17'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:155,30'
              BranchSideFuncs:
                - vsnprintf
                - ds_reserve
                - vsnprintf
            - BranchSide:      'lib/dynamic-string.c:155,15'
              BranchSideFuncs:
                - vsnprintf
                - ds_reserve
                - vsnprintf
        - Branch String:   'lib/dynamic-string.c:156,24'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:157,27'
              BranchSideFuncs:
                - vsnprintf
                - ds_reserve
                - vsnprintf
            - BranchSide:      'lib/dynamic-string.c:159,24'
              BranchSideFuncs:
                - vsnprintf
                - ds_reserve
                - vsnprintf
        - Branch String:   'lib/dynamic-string.c:162,9'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:163,23'
              BranchSideFuncs: []
            - BranchSide:      'lib/dynamic-string.c:165,20'
              BranchSideFuncs:
                - ds_reserve
                - vsnprintf
      Callsites:
        - Src:             'lib/dynamic-string.c:156,14'
          Dst:             vsnprintf
        - Src:             'lib/dynamic-string.c:165,9'
          Dst:             ds_reserve
        - Src:             'lib/dynamic-string.c:169,18'
          Dst:             vsnprintf
    - functionName:    ds_put_hex_dump
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 486
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ds
        - buf_
        - size
        - ofs
        - ascii
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_put_hex_dump__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:485,5'
          Dst:             ds_put_hex_dump__
    - functionName:    ds_put_hex_with_delimiter
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ds
        - buf_
        - size
        - delimiter
      BBCount:         12
      ICount:          76
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ds_put_format
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/dynamic-string.c:413,5'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:414,13'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
            - BranchSide:      'lib/dynamic-string.c:419,1'
              BranchSideFuncs: []
        - Branch String:   'lib/dynamic-string.c:414,15'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:414,18'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
            - BranchSide:      'lib/dynamic-string.c:417,23'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
        - Branch String:   'lib/dynamic-string.c:414,13'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:415,27'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
            - BranchSide:      'lib/dynamic-string.c:417,23'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
      Callsites:
        - Src:             'lib/dynamic-string.c:415,13'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:417,9'
          Dst:             ds_put_format
    - functionName:    ds_put_hex
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ds
        - buf_
        - size
      BBCount:         19
      ICount:          107
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - ds_put_char
        - ds_put_format
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/dynamic-string.c:390,5'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:391,23'
              BranchSideFuncs:
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
            - BranchSide:      'lib/dynamic-string.c:401,10'
              BranchSideFuncs:
                - ds_put_char.3512
        - Branch String:   'lib/dynamic-string.c:392,17'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:392,20'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
            - BranchSide:      'lib/dynamic-string.c:393,18'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
        - Branch String:   'lib/dynamic-string.c:392,13'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:393,18'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
            - BranchSide:      'lib/dynamic-string.c:400,5'
              BranchSideFuncs:
                - ds_put_char.3512
                - ds_put_format
                - ds_put_format
        - Branch String:   'lib/dynamic-string.c:393,17'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:394,31'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
            - BranchSide:      'lib/dynamic-string.c:396,31'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_char.3512
                - ds_put_format
        - Branch String:   'lib/dynamic-string.c:401,9'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:401,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/dynamic-string.c:402,21'
              BranchSideFuncs:
                - ds_put_char.3512
      Callsites:
        - Src:             'lib/dynamic-string.c:394,17'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:396,17'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:402,9'
          Dst:             ds_put_char
    - functionName:    ds_swap
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 377
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ds_destroy
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ds
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ds_steal_cstr
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 362
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ds
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_cstr
        - ds_init
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:363,15'
          Dst:             ds_cstr
        - Src:             'lib/dynamic-string.c:364,5'
          Dst:             ds_init
    - functionName:    ds_cstr
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ds
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_reserve
      functionUses:    24
      BranchProfiles:
        - Branch String:   'lib/dynamic-string.c:344,9'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:344,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/dynamic-string.c:345,20'
              BranchSideFuncs:
                - ds_reserve
      Callsites:
        - Src:             'lib/dynamic-string.c:345,9'
          Dst:             ds_reserve
    - functionName:    ds_cstr_ro
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ds
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_cstr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:354,12'
          Dst:             ds_cstr
    - functionName:    ds_get_test_line
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 339
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ds
        - file
      BBCount:         14
      ICount:          88
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - ds_cstr
        - ds_get_line
        - putchar
        - puts
        - strchr
        - strspn
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/dynamic-string.c:318,13'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:319,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/dynamic-string.c:322,21'
              BranchSideFuncs:
                - ds_cstr
                - strchr
                - strspn
                - putchar
                - ds_get_line
                - puts
        - Branch String:   'lib/dynamic-string.c:323,13'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:324,18'
              BranchSideFuncs:
                - puts
                - ds_get_line
                - ds_cstr
                - strchr
                - strspn
                - putchar
            - BranchSide:      'lib/dynamic-string.c:328,26'
              BranchSideFuncs:
                - strchr
                - strspn
                - putchar
                - ds_get_line
                - ds_cstr
                - puts
        - Branch String:   'lib/dynamic-string.c:329,13'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:330,14'
              BranchSideFuncs:
                - strspn
                - putchar
                - ds_get_line
                - ds_cstr
                - strchr
                - puts
            - BranchSide:      'lib/dynamic-string.c:332,13'
              BranchSideFuncs:
                - strspn
                - putchar
                - ds_get_line
                - ds_cstr
                - strchr
                - puts
        - Branch String:   'lib/dynamic-string.c:332,13'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:333,13'
              BranchSideFuncs:
                - putchar
                - ds_get_line
                - ds_cstr
                - strchr
                - strspn
                - puts
            - BranchSide:      'lib/dynamic-string.c:337,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/dynamic-string.c:317,18'
          Dst:             ds_get_line
        - Src:             'lib/dynamic-string.c:322,13'
          Dst:             ds_cstr
        - Src:             'lib/dynamic-string.c:324,13'
          Dst:             puts
        - Src:             'lib/dynamic-string.c:328,19'
          Dst:             strchr
        - Src:             'lib/dynamic-string.c:332,15'
          Dst:             strspn
        - Src:             'lib/dynamic-string.c:333,13'
          Dst:             putchar
    - functionName:    ds_get_line
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ds
        - file
      BBCount:         11
      ICount:          62
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - ds_clear
        - ds_put_char
        - getc
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/dynamic-string.c:250,13'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:251,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/dynamic-string.c:252,20'
              BranchSideFuncs:
                - ds_put_char.3512
                - getc
        - Branch String:   'lib/dynamic-string.c:252,20'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:253,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/dynamic-string.c:255,25'
              BranchSideFuncs:
                - ds_put_char.3512
                - getc
      Callsites:
        - Src:             'lib/dynamic-string.c:247,5'
          Dst:             ds_clear
        - Src:             'lib/dynamic-string.c:249,17'
          Dst:             getc
        - Src:             'lib/dynamic-string.c:255,13'
          Dst:             ds_put_char
    - functionName:    puts
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    putchar
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ds_clear
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ds
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ds_get_preprocessed_line
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ds
        - file
        - line_numberp
      BBCount:         15
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - ds_cstr
        - ds_get_line
        - strchr
        - strspn
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/dynamic-string.c:271,5'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:272,30'
              BranchSideFuncs:
                - ds_cstr
                - strchr
                - strspn
                - ds_get_line
            - BranchSide:      'lib/dynamic-string.c:290,5'
              BranchSideFuncs: []
        - Branch String:   'lib/dynamic-string.c:275,13'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:276,16'
              BranchSideFuncs:
                - strchr
                - strspn
                - ds_get_line
                - ds_cstr
            - BranchSide:      'lib/dynamic-string.c:280,26'
              BranchSideFuncs:
                - strchr
                - strspn
                - ds_get_line
                - ds_cstr
        - Branch String:   'lib/dynamic-string.c:281,13'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:282,14'
              BranchSideFuncs:
                - strspn
                - ds_get_line
                - ds_cstr
                - strchr
            - BranchSide:      'lib/dynamic-string.c:286,13'
              BranchSideFuncs:
                - strspn
                - ds_get_line
                - ds_cstr
                - strchr
        - Branch String:   'lib/dynamic-string.c:286,13'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:271,5'
              BranchSideFuncs: []
            - BranchSide:      'lib/dynamic-string.c:287,13'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/dynamic-string.c:271,13'
          Dst:             ds_get_line
        - Src:             'lib/dynamic-string.c:272,22'
          Dst:             ds_cstr
        - Src:             'lib/dynamic-string.c:280,19'
          Dst:             strchr
        - Src:             'lib/dynamic-string.c:286,18'
          Dst:             strspn
    - functionName:    xastrftime_msec
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - template
        - when
        - utc
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_init
        - ds_put_strftime_msec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:239,5'
          Dst:             ds_init
        - Src:             'lib/dynamic-string.c:240,5'
          Dst:             ds_put_strftime_msec
    - functionName:    ds_put_strftime_msec
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - bool
      constantsTouched: []
      argNames:
        - ds
        - template
        - when
        - utc
      BBCount:         12
      ICount:          107
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ds_reserve
        - gmtime_msec
        - localtime_msec
        - strftime_msec
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/dynamic-string.c:213,9'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:214,21'
              BranchSideFuncs:
                - gmtime_msec
                - ds_reserve
                - strftime_msec
                - ds_reserve
            - BranchSide:      'lib/dynamic-string.c:216,24'
              BranchSideFuncs:
                - localtime_msec
                - ds_reserve
                - strftime_msec
                - ds_reserve
        - Branch String:   'lib/dynamic-string.c:224,13'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:225,27'
              BranchSideFuncs: []
            - BranchSide:      'lib/dynamic-string.c:228,20'
              BranchSideFuncs:
                - ds_reserve
                - strftime_msec
        - Branch String:   'lib/dynamic-string.c:228,38'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:228,35'
              BranchSideFuncs:
                - ds_reserve
                - strftime_msec
            - BranchSide:      'lib/dynamic-string.c:228,60'
              BranchSideFuncs:
                - ds_reserve
                - strftime_msec
      Callsites:
        - Src:             'lib/dynamic-string.c:214,9'
          Dst:             gmtime_msec
        - Src:             'lib/dynamic-string.c:216,9'
          Dst:             localtime_msec
        - Src:             'lib/dynamic-string.c:219,5'
          Dst:             ds_reserve
        - Src:             'lib/dynamic-string.c:223,23'
          Dst:             strftime_msec
        - Src:             'lib/dynamic-string.c:228,9'
          Dst:             ds_reserve
    - functionName:    ds_put_uuid
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ds
        - uuid
      BBCount:         3
      ICount:          48
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_put_uninit
        - snprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:201,14'
          Dst:             ds_put_uninit
        - Src:             'lib/dynamic-string.c:201,5'
          Dst:             snprintf
    - functionName:    ds_put_printable
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ds
        - s
        - n
      BBCount:         16
      ICount:          93
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - ds_put_char
        - ds_put_format
        - ds_reserve
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/dynamic-string.c:182,5'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:183,29'
              BranchSideFuncs:
                - ds_put_char.3512
                - ds_put_format
            - BranchSide:      'lib/dynamic-string.c:190,1'
              BranchSideFuncs: []
        - Branch String:   'lib/dynamic-string.c:184,22'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:184,25'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_char.3512
            - BranchSide:      'lib/dynamic-string.c:185,27'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_char.3512
        - Branch String:   'lib/dynamic-string.c:184,34'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:184,37'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_char.3512
            - BranchSide:      'lib/dynamic-string.c:185,27'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_char.3512
        - Branch String:   'lib/dynamic-string.c:184,47'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:184,50'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_char.3512
            - BranchSide:      'lib/dynamic-string.c:185,27'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_char.3512
        - Branch String:   'lib/dynamic-string.c:184,13'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:185,27'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_char.3512
            - BranchSide:      'lib/dynamic-string.c:187,25'
              BranchSideFuncs:
                - ds_put_char.3512
                - ds_put_format
      Callsites:
        - Src:             'lib/dynamic-string.c:181,5'
          Dst:             ds_reserve
        - Src:             'lib/dynamic-string.c:185,13'
          Dst:             ds_put_format
        - Src:             'lib/dynamic-string.c:187,13'
          Dst:             ds_put_char
    - functionName:    ds_put_and_free_cstr
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ds
        - s
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_put_cstr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:133,5'
          Dst:             ds_put_cstr
    - functionName:    ds_put_cstr
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ds
        - s
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_put_uninit
        - strlen
      functionUses:    65
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:126,20'
          Dst:             strlen
        - Src:             'lib/dynamic-string.c:127,12'
          Dst:             ds_put_uninit
    - functionName:    ds_put_buffer
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ds
        - s
        - n
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_put_uninit
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:120,12'
          Dst:             ds_put_uninit
    - functionName:    ds_put_char_multiple
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - size_t
      constantsTouched: []
      argNames:
        - ds
        - c
        - n
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_put_uninit
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dynamic-string.c:114,12'
          Dst:             ds_put_uninit
    - functionName:    ds_put_utf8
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ds
        - uc
      BBCount:         15
      ICount:          119
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - ds_put_char
        - ds_put_utf8
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/dynamic-string.c:90,9'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:91,21'
              BranchSideFuncs:
                - ds_put_char.3512
            - BranchSide:      'lib/dynamic-string.c:92,16'
              BranchSideFuncs:
                - ds_put_utf8
                - ds_put_char.3512
                - ds_put_char.3512
                - ds_put_char.3512
                - ds_put_char.3512
                - ds_put_char.3512
                - ds_put_char.3512
                - ds_put_char.3512
                - ds_put_char.3512
                - ds_put_char.3512
        - Branch String:   'lib/dynamic-string.c:92,16'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:93,21'
              BranchSideFuncs:
                - ds_put_char.3512
                - ds_put_char.3512
            - BranchSide:      'lib/dynamic-string.c:95,16'
              BranchSideFuncs:
                - ds_put_utf8
                - ds_put_char.3512
                - ds_put_char.3512
                - ds_put_char.3512
                - ds_put_char.3512
                - ds_put_char.3512
                - ds_put_char.3512
                - ds_put_char.3512
        - Branch String:   'lib/dynamic-string.c:95,16'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:96,21'
              BranchSideFuncs:
                - ds_put_char.3512
                - ds_put_char.3512
                - ds_put_char.3512
            - BranchSide:      'lib/dynamic-string.c:99,16'
              BranchSideFuncs:
                - ds_put_utf8
                - ds_put_char.3512
                - ds_put_char.3512
                - ds_put_char.3512
                - ds_put_char.3512
        - Branch String:   'lib/dynamic-string.c:99,16'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:100,21'
              BranchSideFuncs:
                - ds_put_char.3512
                - ds_put_char.3512
                - ds_put_char.3512
                - ds_put_char.3512
            - BranchSide:      'lib/dynamic-string.c:107,21'
              BranchSideFuncs:
                - ds_put_utf8
      Callsites:
        - Src:             'lib/dynamic-string.c:91,9'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:93,9'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:94,9'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:96,9'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:97,9'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:98,9'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:100,9'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:101,9'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:102,9'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:103,9'
          Dst:             ds_put_char
        - Src:             'lib/dynamic-string.c:107,9'
          Dst:             ds_put_utf8
    - functionName:    ds_truncate
      functionSourceFile: '/src/openvswitch/lib/dynamic-string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ds
        - new_length
      BBCount:         4
      ICount:          35
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/dynamic-string.c:49,9'
          Branch Sides:
            - BranchSide:      'lib/dynamic-string.c:49,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/dynamic-string.c:50,22'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    init_this_module_entropy
      functionSourceFile: '/src/openvswitch/lib/entropy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/entropy.c:30,1'
          Branch Sides:
            - BranchSide:      'lib/entropy.c:30,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/entropy.c:30,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/entropy.c:30,1'
          Dst:             vlog_insert_module
    - functionName:    get_entropy_or_die
      functionSourceFile: '/src/openvswitch/lib/entropy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - buffer
        - n
      BBCount:         5
      ICount:          37
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - get_entropy
        - ovs_retval_to_string
        - vlog_fatal
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/entropy.c:78,9'
          Branch Sides:
            - BranchSide:      'lib/entropy.c:79,9'
              BranchSideFuncs:
                - ovs_retval_to_string
                - vlog_fatal
            - BranchSide:      'lib/entropy.c:82,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/entropy.c:77,17'
          Dst:             get_entropy
        - Src:             'lib/entropy.c:79,9'
          Dst:             ovs_retval_to_string
        - Src:             'lib/entropy.c:79,9'
          Dst:             vlog_fatal
    - functionName:    get_entropy
      functionSourceFile: '/src/openvswitch/lib/entropy.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - buffer
        - n
      BBCount:         22
      ICount:          116
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - close
        - open
        - ovs_retval_to_string
        - ovs_strerror
        - read_fully
        - vlog
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/entropy.c:45,9'
          Branch Sides:
            - BranchSide:      'lib/entropy.c:46,9'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/entropy.c:50,24'
              BranchSideFuncs:
                - read_fully
                - close
                - ovs_retval_to_string
                - vlog
        - Branch String:   'lib/entropy.c:46,9'
          Branch Sides:
            - BranchSide:      'lib/entropy.c:46,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
                - __errno_location
            - BranchSide:      'lib/entropy.c:47,16'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
        - Branch String:   'lib/entropy.c:47,16'
          Branch Sides:
            - BranchSide:      'lib/entropy.c:47,24'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/entropy.c:47,9'
              BranchSideFuncs: []
        - Branch String:   'lib/entropy.c:53,9'
          Branch Sides:
            - BranchSide:      'lib/entropy.c:54,9'
              BranchSideFuncs:
                - ovs_retval_to_string
                - vlog
            - BranchSide:      'lib/entropy.c:69,12'
              BranchSideFuncs: []
        - Branch String:   'lib/entropy.c:54,9'
          Branch Sides:
            - BranchSide:      'lib/entropy.c:54,9'
              BranchSideFuncs:
                - ovs_retval_to_string
                - vlog
            - BranchSide:      'lib/entropy.c:55,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/entropy.c:44,10'
          Dst:             open
        - Src:             'lib/entropy.c:46,9'
          Dst:             __errno_location
        - Src:             'lib/entropy.c:46,9'
          Dst:             ovs_strerror
        - Src:             'lib/entropy.c:46,9'
          Dst:             vlog
        - Src:             'lib/entropy.c:47,16'
          Dst:             __errno_location
        - Src:             'lib/entropy.c:47,24'
          Dst:             __errno_location
        - Src:             'lib/entropy.c:50,13'
          Dst:             read_fully
        - Src:             'lib/entropy.c:51,5'
          Dst:             close
        - Src:             'lib/entropy.c:54,9'
          Dst:             ovs_retval_to_string
        - Src:             'lib/entropy.c:54,9'
          Dst:             vlog
    - functionName:    init_this_module_fatal_signal
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/fatal-signal.c:50,1'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:50,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/fatal-signal.c:50,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/fatal-signal.c:50,1'
          Dst:             vlog_insert_module
    - functionName:    hmap_next__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - start
      BBCount:         8
      ICount:          55
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:403,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:404,34'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:409,5'
              BranchSideFuncs: []
        - Branch String:   './include/openvswitch/hmap.h:405,13'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:406,20'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:408,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    hmap_next
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_next__
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:430,13'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:431,15'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:432,27'
              BranchSideFuncs:
                - hmap_next__.3620
      Callsites:
        - Src:             './include/openvswitch/hmap.h:432,15'
          Dst:             hmap_next__
    - functionName:    hmap_first
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:417,12'
          Dst:             hmap_next__
    - functionName:    do_unlink_files
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 515
      functionLinenumberEnd: 521
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          64
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - hmap_first
        - hmap_next
        - unlink
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/fatal-signal.c:518,5'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:516,17'
              BranchSideFuncs:
                - hmap_first.3622
                - hmap_first.3622
                - unlink
                - hmap_next.3621
                - hmap_next.3621
            - BranchSide:      'lib/fatal-signal.c:518,5'
              BranchSideFuncs:
                - hmap_first.3622
                - hmap_first.3622
                - unlink
                - hmap_next.3621
                - hmap_next.3621
        - Branch String:   'lib/fatal-signal.c:518,5'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:518,5'
              BranchSideFuncs:
                - unlink
                - hmap_next.3621
                - hmap_next.3621
            - BranchSide:      'lib/fatal-signal.c:518,5'
              BranchSideFuncs:
                - hmap_first.3622
                - unlink
                - hmap_next.3621
                - hmap_next.3621
        - Branch String:   'lib/fatal-signal.c:518,5'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:519,16'
              BranchSideFuncs:
                - unlink
                - hmap_next.3621
                - hmap_next.3621
            - BranchSide:      'lib/fatal-signal.c:521,1'
              BranchSideFuncs: []
        - Branch String:   'lib/fatal-signal.c:518,5'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:518,5'
              BranchSideFuncs:
                - unlink
                - hmap_next.3621
                - hmap_next.3621
            - BranchSide:      'lib/fatal-signal.c:518,5'
              BranchSideFuncs:
                - hmap_next.3621
                - unlink
                - hmap_next.3621
      Callsites:
        - Src:             'lib/fatal-signal.c:518,5'
          Dst:             hmap_first
        - Src:             'lib/fatal-signal.c:518,5'
          Dst:             hmap_first
        - Src:             'lib/fatal-signal.c:519,9'
          Dst:             unlink
        - Src:             'lib/fatal-signal.c:518,5'
          Dst:             hmap_next
        - Src:             'lib/fatal-signal.c:518,5'
          Dst:             hmap_next
    - functionName:    fatal_signal_block
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 564
      functionLinenumberEnd: 574
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - prev_mask
      BBCount:         7
      ICount:          48
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - sigaddset
        - sigemptyset
        - xpthread_sigmask
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/fatal-signal.c:569,5'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:570,36'
              BranchSideFuncs:
                - sigaddset
                - xpthread_sigmask
            - BranchSide:      'lib/fatal-signal.c:573,46'
              BranchSideFuncs:
                - xpthread_sigmask
      Callsites:
        - Src:             'lib/fatal-signal.c:568,5'
          Dst:             sigemptyset
        - Src:             'lib/fatal-signal.c:571,9'
          Dst:             sigaddset
        - Src:             'lib/fatal-signal.c:573,5'
          Dst:             xpthread_sigmask
    - functionName:    sigemptyset
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sigaddset
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fatal_signal_destroy_wakeup_events
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - close
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/fatal-signal.c:106,11'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:106,11'
              BranchSideFuncs:
                - close
                - close
            - BranchSide:      'lib/fatal-signal.c:106,11'
              BranchSideFuncs:
                - close
                - close
      Callsites:
        - Src:             'lib/fatal-signal.c:106,5'
          Dst:             close
        - Src:             'lib/fatal-signal.c:108,5'
          Dst:             close
    - functionName:    fatal_signal_fork
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 557
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          73
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - assert_single_threaded_at
        - fatal_signal_create_wakeup_events
        - fatal_signal_destroy_wakeup_events
        - raise
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/fatal-signal.c:539,5'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:537,12'
              BranchSideFuncs:
                - assert_single_threaded_at
                - fatal_signal_destroy_wakeup_events
                - fatal_signal_create_wakeup_events
                - raise
            - BranchSide:      'lib/fatal-signal.c:544,17'
              BranchSideFuncs:
                - assert_single_threaded_at
                - fatal_signal_destroy_wakeup_events
                - fatal_signal_create_wakeup_events
                - raise
        - Branch String:   'lib/fatal-signal.c:544,5'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:545,33'
              BranchSideFuncs:
                - raise
            - BranchSide:      'lib/fatal-signal.c:550,13'
              BranchSideFuncs:
                - raise
        - Branch String:   'lib/fatal-signal.c:546,13'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:547,13'
              BranchSideFuncs:
                - raise
            - BranchSide:      'lib/fatal-signal.c:549,5'
              BranchSideFuncs:
                - raise
        - Branch String:   'lib/fatal-signal.c:554,9'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:554,9'
              BranchSideFuncs:
                - raise
            - BranchSide:      'lib/fatal-signal.c:555,15'
              BranchSideFuncs:
                - raise
      Callsites:
        - Src:             'lib/fatal-signal.c:539,5'
          Dst:             assert_single_threaded_at
        - Src:             'lib/fatal-signal.c:541,5'
          Dst:             fatal_signal_destroy_wakeup_events
        - Src:             'lib/fatal-signal.c:542,5'
          Dst:             fatal_signal_create_wakeup_events
        - Src:             'lib/fatal-signal.c:555,9'
          Dst:             raise
    - functionName:    fatal_signal_create_wakeup_events
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xpipe_nonblocking
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/fatal-signal.c:92,5'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:92,5'
              BranchSideFuncs:
                - xpipe_nonblocking
            - BranchSide:      'lib/fatal-signal.c:92,5'
              BranchSideFuncs:
                - xpipe_nonblocking
      Callsites:
        - Src:             'lib/fatal-signal.c:92,5'
          Dst:             xpipe_nonblocking
    - functionName:    raise
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fatal_signal_unlink_file_now
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 481
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - file
      BBCount:         14
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - fatal_signal_init
        - fatal_signal_remove_file_to_unlink
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovs_strerror
        - unlink
        - vlog
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/fatal-signal.c:488,13'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:488,28'
              BranchSideFuncs:
                - __errno_location
                - fatal_signal_remove_file_to_unlink
                - ovs_mutex_unlock
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/fatal-signal.c:488,11'
              BranchSideFuncs:
                - fatal_signal_remove_file_to_unlink
                - ovs_mutex_unlock
                - ovs_strerror
                - vlog
        - Branch String:   'lib/fatal-signal.c:489,9'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:489,9'
              BranchSideFuncs:
                - fatal_signal_remove_file_to_unlink
                - ovs_mutex_unlock
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/fatal-signal.c:490,9'
              BranchSideFuncs:
                - fatal_signal_remove_file_to_unlink
                - ovs_mutex_unlock
                - ovs_strerror
                - vlog
        - Branch String:   'lib/fatal-signal.c:490,9'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:490,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
                - fatal_signal_remove_file_to_unlink
                - ovs_mutex_unlock
            - BranchSide:      'lib/fatal-signal.c:491,5'
              BranchSideFuncs:
                - fatal_signal_remove_file_to_unlink
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/fatal-signal.c:484,5'
          Dst:             fatal_signal_init
        - Src:             'lib/fatal-signal.c:486,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/fatal-signal.c:488,13'
          Dst:             unlink
        - Src:             'lib/fatal-signal.c:488,28'
          Dst:             __errno_location
        - Src:             'lib/fatal-signal.c:490,9'
          Dst:             ovs_strerror
        - Src:             'lib/fatal-signal.c:490,9'
          Dst:             vlog
        - Src:             'lib/fatal-signal.c:493,5'
          Dst:             fatal_signal_remove_file_to_unlink
        - Src:             'lib/fatal-signal.c:495,5'
          Dst:             ovs_mutex_unlock
    - functionName:    fatal_signal_init
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          80
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - assert_single_threaded_at
        - atexit
        - backtrace_capture
        - fatal_signal_atexit_handler
        - fatal_signal_create_wakeup_events
        - fatal_signal_handler
        - ovs_mutex_init_recursive
        - ovs_strerror
        - signal
        - vlog_fatal
        - xsigaction
      functionUses:    6
      BranchProfiles:
        - Branch String:   'lib/fatal-signal.c:127,10'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:127,10'
              BranchSideFuncs:
                - assert_single_threaded_at
                - ovs_mutex_init_recursive
                - backtrace_capture
                - fatal_signal_create_wakeup_events
                - atexit
                - xsigaction
                - signal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/fatal-signal.c:127,10'
              BranchSideFuncs:
                - assert_single_threaded_at
                - ovs_mutex_init_recursive
                - backtrace_capture
                - fatal_signal_create_wakeup_events
                - atexit
                - xsigaction
                - signal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/fatal-signal.c:127,9'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:127,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/fatal-signal.c:130,9'
              BranchSideFuncs:
                - assert_single_threaded_at
                - ovs_mutex_init_recursive
                - backtrace_capture
                - fatal_signal_create_wakeup_events
                - atexit
                - xsigaction
                - signal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/fatal-signal.c:148,9'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:149,40'
              BranchSideFuncs:
                - xsigaction
                - atexit
                - signal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/fatal-signal.c:164,9'
              BranchSideFuncs:
                - atexit
        - Branch String:   'lib/fatal-signal.c:155,17'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:155,27'
              BranchSideFuncs:
                - signal
                - atexit
                - xsigaction
                - __errno_location
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/fatal-signal.c:163,9'
              BranchSideFuncs:
                - atexit
                - xsigaction
                - signal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/fatal-signal.c:154,17'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:156,17'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/fatal-signal.c:163,9'
              BranchSideFuncs:
                - atexit
                - xsigaction
                - signal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
      Callsites:
        - Src:             'lib/fatal-signal.c:130,9'
          Dst:             assert_single_threaded_at
        - Src:             'lib/fatal-signal.c:133,9'
          Dst:             ovs_mutex_init_recursive
        - Src:             'lib/fatal-signal.c:139,9'
          Dst:             backtrace_capture
        - Src:             'lib/fatal-signal.c:141,9'
          Dst:             fatal_signal_create_wakeup_events
        - Src:             'lib/fatal-signal.c:153,13'
          Dst:             xsigaction
        - Src:             'lib/fatal-signal.c:155,20'
          Dst:             signal
        - Src:             'lib/fatal-signal.c:155,20'
          Dst:             fatal_signal_handler
        - Src:             'lib/fatal-signal.c:156,17'
          Dst:             __errno_location
        - Src:             'lib/fatal-signal.c:156,17'
          Dst:             ovs_strerror
        - Src:             'lib/fatal-signal.c:156,17'
          Dst:             vlog_fatal
        - Src:             'lib/fatal-signal.c:164,9'
          Dst:             atexit
        - Src:             'lib/fatal-signal.c:164,9'
          Dst:             fatal_signal_atexit_handler
    - functionName:    fatal_signal_remove_file_to_unlink
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 475
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - file
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fatal_signal_init
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - sset_find_and_delete
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:470,5'
          Dst:             fatal_signal_init
        - Src:             'lib/fatal-signal.c:472,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/fatal-signal.c:473,5'
          Dst:             sset_find_and_delete
        - Src:             'lib/fatal-signal.c:474,5'
          Dst:             ovs_mutex_unlock
    - functionName:    fatal_signal_handler
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - sig_nr
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ignore
        - raise
        - send_backtrace_to_monitor
        - signal
        - write
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/fatal-signal.c:330,9'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:330,9'
              BranchSideFuncs:
                - signal
                - send_backtrace_to_monitor
                - raise
                - write
                - ignore
            - BranchSide:      'lib/fatal-signal.c:331,16'
              BranchSideFuncs:
                - signal
                - send_backtrace_to_monitor
                - raise
                - write
                - ignore
      Callsites:
        - Src:             'lib/fatal-signal.c:331,9'
          Dst:             signal
        - Src:             'lib/fatal-signal.c:332,9'
          Dst:             send_backtrace_to_monitor
        - Src:             'lib/fatal-signal.c:333,9'
          Dst:             raise
        - Src:             'lib/fatal-signal.c:335,12'
          Dst:             write
        - Src:             'lib/fatal-signal.c:335,5'
          Dst:             ignore
    - functionName:    signal
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fatal_signal_atexit_handler
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 406
      functionLinenumberEnd: 408
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - call_hooks
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/fatal-signal.c:407,5'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:407,5'
              BranchSideFuncs:
                - call_hooks
            - BranchSide:      'lib/fatal-signal.c:407,5'
              BranchSideFuncs:
                - call_hooks
      Callsites:
        - Src:             'lib/fatal-signal.c:407,5'
          Dst:             call_hooks
    - functionName:    atexit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    call_hooks
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - sig_nr
      BBCount:         16
      ICount:          80
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/fatal-signal.c:414,9'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:414,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/fatal-signal.c:417,17'
              BranchSideFuncs: []
        - Branch String:   'lib/fatal-signal.c:419,9'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:420,37'
              BranchSideFuncs: []
            - BranchSide:      'lib/fatal-signal.c:425,5'
              BranchSideFuncs: []
        - Branch String:   'lib/fatal-signal.c:421,24'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:421,27'
              BranchSideFuncs: []
            - BranchSide:      'lib/fatal-signal.c:422,17'
              BranchSideFuncs: []
        - Branch String:   'lib/fatal-signal.c:421,17'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:422,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/fatal-signal.c:424,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    send_backtrace_to_monitor
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         11
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - backtrace_capture
        - backtrace_symbols_fd
        - ignore
        - vlog_direct_write_to_log_file_unsafe
        - vlog_get_log_file_fd_unsafe
        - write
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/fatal-signal.c:295,5'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:293,22'
              BranchSideFuncs:
                - backtrace_capture
                - vlog_get_log_file_fd_unsafe
                - vlog_direct_write_to_log_file_unsafe
                - backtrace_symbols_fd
                - write
                - ignore
            - BranchSide:      'lib/fatal-signal.c:295,5'
              BranchSideFuncs:
                - backtrace_capture
                - vlog_get_log_file_fd_unsafe
                - vlog_direct_write_to_log_file_unsafe
                - backtrace_symbols_fd
                - write
                - ignore
        - Branch String:   'lib/fatal-signal.c:297,17'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:297,20'
              BranchSideFuncs:
                - vlog_get_log_file_fd_unsafe
                - vlog_direct_write_to_log_file_unsafe
                - backtrace_symbols_fd
                - write
                - ignore
            - BranchSide:      'lib/fatal-signal.c:300,22'
              BranchSideFuncs:
                - vlog_get_log_file_fd_unsafe
                - vlog_direct_write_to_log_file_unsafe
                - backtrace_symbols_fd
        - Branch String:   'lib/fatal-signal.c:297,9'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:298,22'
              BranchSideFuncs:
                - write
                - ignore
            - BranchSide:      'lib/fatal-signal.c:300,22'
              BranchSideFuncs:
                - vlog_get_log_file_fd_unsafe
                - vlog_direct_write_to_log_file_unsafe
                - backtrace_symbols_fd
        - Branch String:   'lib/fatal-signal.c:302,13'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:303,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/fatal-signal.c:306,9'
              BranchSideFuncs:
                - vlog_direct_write_to_log_file_unsafe
                - backtrace_symbols_fd
      Callsites:
        - Src:             'lib/fatal-signal.c:295,5'
          Dst:             backtrace_capture
        - Src:             'lib/fatal-signal.c:298,16'
          Dst:             write
        - Src:             'lib/fatal-signal.c:298,9'
          Dst:             ignore
        - Src:             'lib/fatal-signal.c:300,22'
          Dst:             vlog_get_log_file_fd_unsafe
        - Src:             'lib/fatal-signal.c:306,9'
          Dst:             vlog_direct_write_to_log_file_unsafe
        - Src:             'lib/fatal-signal.c:307,9'
          Dst:             backtrace_symbols_fd
    - functionName:    backtrace_symbols_fd
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cancel_files
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 508
      functionLinenumberEnd: 511
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - aux
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sset_clear
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:509,5'
          Dst:             sset_clear
    - functionName:    unlink_files
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 504
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - aux
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - do_unlink_files
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:503,5'
          Dst:             do_unlink_files
    - functionName:    fatal_signal_add_file_to_unlink
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 452
      functionLinenumberEnd: 463
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - file
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - cancel_files
        - fatal_signal_add_hook
        - fatal_signal_init
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - sset_add
        - unlink_files
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/fatal-signal.c:456,9'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:456,9'
              BranchSideFuncs:
                - sset_add
                - ovs_mutex_unlock
            - BranchSide:      'lib/fatal-signal.c:457,20'
              BranchSideFuncs:
                - fatal_signal_add_hook
                - sset_add
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/fatal-signal.c:453,5'
          Dst:             fatal_signal_init
        - Src:             'lib/fatal-signal.c:455,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/fatal-signal.c:458,9'
          Dst:             fatal_signal_add_hook
        - Src:             'lib/fatal-signal.c:458,9'
          Dst:             unlink_files
        - Src:             'lib/fatal-signal.c:458,9'
          Dst:             cancel_files
        - Src:             'lib/fatal-signal.c:461,5'
          Dst:             sset_add
        - Src:             'lib/fatal-signal.c:462,5'
          Dst:             ovs_mutex_unlock
    - functionName:    fatal_signal_add_hook
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - hook_cb
        - cancel_cb
        - aux
        - run_at_exit
      BBCount:         3
      ICount:          56
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fatal_signal_init
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/fatal-signal.c:186,5'
          Dst:             fatal_signal_init
        - Src:             'lib/fatal-signal.c:188,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/fatal-signal.c:195,5'
          Dst:             ovs_mutex_unlock
    - functionName:    fatal_ignore_sigpipe
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 402
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - signal
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/fatal-signal.c:400,5'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:400,5'
              BranchSideFuncs:
                - signal
            - BranchSide:      'lib/fatal-signal.c:400,5'
              BranchSideFuncs:
                - signal
      Callsites:
        - Src:             'lib/fatal-signal.c:400,5'
          Dst:             signal
    - functionName:    fatal_signal_wait
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 387
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fatal_signal_init
        - poll_fd_wait_at
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/fatal-signal.c:388,5'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:388,5'
              BranchSideFuncs:
                - fatal_signal_init
                - poll_fd_wait_at
            - BranchSide:      'lib/fatal-signal.c:388,5'
              BranchSideFuncs:
                - fatal_signal_init
                - poll_fd_wait_at
      Callsites:
        - Src:             'lib/fatal-signal.c:388,5'
          Dst:             fatal_signal_init
        - Src:             'lib/fatal-signal.c:392,5'
          Dst:             poll_fd_wait_at
    - functionName:    fatal_signal_run
      functionSourceFile: '/src/openvswitch/lib/fatal-signal.c'
      linkageType:     InternalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 383
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - abort
        - call_hooks
        - fatal_signal_init
        - fflush
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - raise
        - signal
        - signal_name
        - vlog
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/fatal-signal.c:358,5'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:356,18'
              BranchSideFuncs:
                - fatal_signal_init
                - ovs_mutex_lock_at
                - call_hooks
                - fflush
                - signal
                - raise
                - ovs_mutex_unlock
                - abort
                - signal_name
                - vlog
            - BranchSide:      'lib/fatal-signal.c:358,5'
              BranchSideFuncs:
                - fatal_signal_init
                - ovs_mutex_lock_at
                - call_hooks
                - fflush
                - signal
                - raise
                - ovs_mutex_unlock
                - abort
                - signal_name
                - vlog
        - Branch String:   'lib/fatal-signal.c:361,9'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:364,9'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - call_hooks
                - fflush
                - signal
                - raise
                - ovs_mutex_unlock
                - abort
                - signal_name
                - vlog
            - BranchSide:      'lib/fatal-signal.c:383,1'
              BranchSideFuncs: []
        - Branch String:   'lib/fatal-signal.c:367,9'
          Branch Sides:
            - BranchSide:      'lib/fatal-signal.c:367,9'
              BranchSideFuncs:
                - signal_name
                - vlog
                - call_hooks
                - fflush
                - signal
                - raise
                - ovs_mutex_unlock
                - abort
            - BranchSide:      'lib/fatal-signal.c:372,20'
              BranchSideFuncs:
                - call_hooks
                - fflush
                - signal
                - raise
                - ovs_mutex_unlock
                - abort
      Callsites:
        - Src:             'lib/fatal-signal.c:358,5'
          Dst:             fatal_signal_init
        - Src:             'lib/fatal-signal.c:364,9'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/fatal-signal.c:367,9'
          Dst:             signal_name
        - Src:             'lib/fatal-signal.c:367,9'
          Dst:             vlog
        - Src:             'lib/fatal-signal.c:372,9'
          Dst:             call_hooks
        - Src:             'lib/fatal-signal.c:373,9'
          Dst:             fflush
        - Src:             'lib/fatal-signal.c:377,9'
          Dst:             signal
        - Src:             'lib/fatal-signal.c:378,9'
          Dst:             raise
        - Src:             'lib/fatal-signal.c:380,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/fatal-signal.c:381,9'
          Dst:             abort
    - functionName:    unaligned_u64__
      functionSourceFile: '/src/openvswitch/lib/unaligned.h'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_add64
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:114,21'
          Dst:             hash_add
        - Src:             'lib/hash.h:114,12'
          Dst:             hash_add
    - functionName:    hash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_add
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:109,12'
          Dst:             mhash_add
    - functionName:    mhash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_rot
        - mhash_add__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:78,12'
          Dst:             mhash_add__
        - Src:             'lib/hash.h:79,12'
          Dst:             hash_rot
    - functionName:    mhash_add__
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_rot
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/hash.h:66,9'
          Branch Sides:
            - BranchSide:      'lib/hash.h:67,16'
              BranchSideFuncs:
                - hash_rot.3701
            - BranchSide:      'lib/hash.h:70,10'
              BranchSideFuncs:
                - hash_rot.3701
      Callsites:
        - Src:             'lib/hash.h:71,12'
          Dst:             hash_rot
    - functionName:    hash_rot
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - x
        - k
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_add_words64
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 437
      functionLinenumberEnd: 441
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hash
        - p
        - n_words
      BBCount:         7
      ICount:          48
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - hash_add64
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/hash.h:438,5'
          Branch Sides:
            - BranchSide:      'lib/hash.h:439,27'
              BranchSideFuncs:
                - hash_add64
            - BranchSide:      'lib/hash.h:441,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/hash.h:439,16'
          Dst:             hash_add64
    - functionName:    hash_add_words
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hash
        - p
        - n_words
      BBCount:         7
      ICount:          48
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - hash_add
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/hash.h:429,5'
          Branch Sides:
            - BranchSide:      'lib/hash.h:430,25'
              BranchSideFuncs:
                - hash_add.3698
            - BranchSide:      'lib/hash.h:432,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/hash.h:430,16'
          Dst:             hash_add
    - functionName:    unaligned_u32
      functionSourceFile: '/src/openvswitch/lib/unaligned.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mhash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - hash
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fmix64
      functionSourceFile: '/src/openvswitch/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - k
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_rot64
      functionSourceFile: '/src/openvswitch/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - size_t
        - char
      constantsTouched: []
      argNames:
        - x
        - r
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_unaligned_u64__
      functionSourceFile: '/src/openvswitch/lib/unaligned.h'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unaligned_u64__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unaligned.h:87,1'
          Dst:             unaligned_u64__
    - functionName:    hash_bytes128
      functionSourceFile: '/src/openvswitch/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 364
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - p_
        - len
        - basis
        - out
      BBCount:         38
      ICount:          414
      EdgeCount:       38
      CyclomaticComplexity: 2
      functionsReached:
        - fmix64
        - get_unaligned_u64__
        - hash_rot64
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/hash.c:270,5'
          Branch Sides:
            - BranchSide:      'lib/hash.c:271,14'
              BranchSideFuncs:
                - get_unaligned_u64__
                - get_unaligned_u64__
                - hash_rot64
                - hash_rot64
                - hash_rot64
                - hash_rot64
                - hash_rot64
                - fmix64
                - fmix64
                - hash_rot64
            - BranchSide:      'lib/hash.c:294,8'
              BranchSideFuncs:
                - hash_rot64
                - fmix64
                - fmix64
                - hash_rot64
        - Branch String:   'lib/hash.c:297,5'
          Branch Sides:
            - BranchSide:      'lib/hash.c:297,5'
              BranchSideFuncs:
                - fmix64
                - fmix64
            - BranchSide:      'lib/hash.c:299,27'
              BranchSideFuncs:
                - hash_rot64
                - hash_rot64
                - fmix64
                - fmix64
            - BranchSide:      'lib/hash.c:302,27'
              BranchSideFuncs:
                - hash_rot64
                - hash_rot64
                - fmix64
                - fmix64
            - BranchSide:      'lib/hash.c:305,27'
              BranchSideFuncs:
                - hash_rot64
                - hash_rot64
                - fmix64
                - fmix64
            - BranchSide:      'lib/hash.c:308,27'
              BranchSideFuncs:
                - hash_rot64
                - hash_rot64
                - fmix64
                - fmix64
            - BranchSide:      'lib/hash.c:311,27'
              BranchSideFuncs:
                - hash_rot64
                - hash_rot64
                - fmix64
                - fmix64
            - BranchSide:      'lib/hash.c:314,27'
              BranchSideFuncs:
                - hash_rot64
                - hash_rot64
                - fmix64
                - fmix64
            - BranchSide:      'lib/hash.c:317,27'
              BranchSideFuncs:
                - hash_rot64
                - hash_rot64
                - fmix64
                - fmix64
            - BranchSide:      'lib/hash.c:324,27'
              BranchSideFuncs:
                - hash_rot64
                - fmix64
                - fmix64
            - BranchSide:      'lib/hash.c:327,27'
              BranchSideFuncs:
                - hash_rot64
                - fmix64
                - fmix64
            - BranchSide:      'lib/hash.c:330,27'
              BranchSideFuncs:
                - hash_rot64
                - fmix64
                - fmix64
            - BranchSide:      'lib/hash.c:333,27'
              BranchSideFuncs:
                - hash_rot64
                - fmix64
                - fmix64
            - BranchSide:      'lib/hash.c:336,27'
              BranchSideFuncs:
                - hash_rot64
                - fmix64
                - fmix64
            - BranchSide:      'lib/hash.c:339,27'
              BranchSideFuncs:
                - hash_rot64
                - fmix64
                - fmix64
            - BranchSide:      'lib/hash.c:342,27'
              BranchSideFuncs:
                - hash_rot64
                - fmix64
                - fmix64
            - BranchSide:      'lib/hash.c:345,27'
              BranchSideFuncs:
                - hash_rot64
                - fmix64
                - fmix64
      Callsites:
        - Src:             'lib/hash.c:271,14'
          Dst:             get_unaligned_u64__
        - Src:             'lib/hash.c:272,14'
          Dst:             get_unaligned_u64__
        - Src:             'lib/hash.c:275,14'
          Dst:             hash_rot64
        - Src:             'lib/hash.c:279,14'
          Dst:             hash_rot64
        - Src:             'lib/hash.c:284,14'
          Dst:             hash_rot64
        - Src:             'lib/hash.c:288,14'
          Dst:             hash_rot64
        - Src:             'lib/hash.c:319,14'
          Dst:             hash_rot64
        - Src:             'lib/hash.c:347,14'
          Dst:             hash_rot64
        - Src:             'lib/hash.c:357,10'
          Dst:             fmix64
        - Src:             'lib/hash.c:358,10'
          Dst:             fmix64
    - functionName:    hash_words64_inline
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - p
        - n_words
        - basis
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add_words64
        - hash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:136,24'
          Dst:             hash_add_words64
        - Src:             'lib/hash.h:136,12'
          Dst:             hash_finish
    - functionName:    hash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - final
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_finish
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:119,12'
          Dst:             mhash_finish
    - functionName:    hash_words64__
      functionSourceFile: '/src/openvswitch/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - p
        - n_words
        - basis
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_words64_inline
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.c:73,12'
          Dst:             hash_words64_inline
    - functionName:    hash_words_inline
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - p
        - n_words
        - basis
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add_words
        - hash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:130,24'
          Dst:             hash_add_words
        - Src:             'lib/hash.h:130,12'
          Dst:             hash_finish
    - functionName:    hash_words__
      functionSourceFile: '/src/openvswitch/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - p
        - n_words
        - basis
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_words_inline
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.c:67,12'
          Dst:             hash_words_inline
    - functionName:    hash_double
      functionSourceFile: '/src/openvswitch/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - double
        - int
      constantsTouched: []
      argNames:
        - x
        - basis
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_3words
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.c:61,12'
          Dst:             hash_3words
    - functionName:    hash_3words
      functionSourceFile: '/src/openvswitch/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 24
      functionLinenumberEnd: 25
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - a
        - b
        - c
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add
        - hash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.c:25,42'
          Dst:             hash_add
        - Src:             'lib/hash.c:25,33'
          Dst:             hash_add
        - Src:             'lib/hash.c:25,24'
          Dst:             hash_add
        - Src:             'lib/hash.c:25,12'
          Dst:             hash_finish
    - functionName:    get_unaligned_u32
      functionSourceFile: '/src/openvswitch/lib/unaligned.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unaligned_u32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unaligned.h:86,1'
          Dst:             unaligned_u32
    - functionName:    hash_bytes
      functionSourceFile: '/src/openvswitch/lib/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - p_
        - n
        - basis
      BBCount:         9
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - get_unaligned_u32
        - hash_add
        - hash_finish
      functionUses:    8
      BranchProfiles:
        - Branch String:   'lib/hash.c:37,5'
          Branch Sides:
            - BranchSide:      'lib/hash.c:38,25'
              BranchSideFuncs:
                - get_unaligned_u32
                - hash_add.3698
                - hash_finish.3704
                - hash_add.3698
            - BranchSide:      'lib/hash.c:44,9'
              BranchSideFuncs:
                - hash_finish.3704
                - hash_add.3698
        - Branch String:   'lib/hash.c:44,9'
          Branch Sides:
            - BranchSide:      'lib/hash.c:44,9'
              BranchSideFuncs:
                - hash_add.3698
                - hash_finish.3704
            - BranchSide:      'lib/hash.c:45,18'
              BranchSideFuncs:
                - hash_add.3698
                - hash_finish.3704
      Callsites:
        - Src:             'lib/hash.c:39,25'
          Dst:             get_unaligned_u32
        - Src:             'lib/hash.c:38,16'
          Dst:             hash_add
        - Src:             'lib/hash.c:48,16'
          Dst:             hash_add
        - Src:             'lib/hash.c:51,12'
          Dst:             hash_finish
    - functionName:    init_this_module_hmap
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/hmap.c:26,1'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:26,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/hmap.c:26,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/hmap.c:26,1'
          Dst:             vlog_insert_module
    - functionName:    hmap_pathological_init_coverage
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/hmap.c:28,1'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:28,1'
              BranchSideFuncs:
                - coverage_counter_register
            - BranchSide:      'lib/hmap.c:28,1'
              BranchSideFuncs:
                - coverage_counter_register
      Callsites:
        - Src:             'lib/hmap.c:28,1'
          Dst:             coverage_counter_register
    - functionName:    hmap_expand_init_coverage
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/hmap.c:29,1'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:29,1'
              BranchSideFuncs:
                - coverage_counter_register
            - BranchSide:      'lib/hmap.c:29,1'
              BranchSideFuncs:
                - coverage_counter_register
      Callsites:
        - Src:             'lib/hmap.c:29,1'
          Dst:             coverage_counter_register
    - functionName:    hmap_shrink_init_coverage
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/hmap.c:30,1'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:30,1'
              BranchSideFuncs:
                - coverage_counter_register
            - BranchSide:      'lib/hmap.c:30,1'
              BranchSideFuncs:
                - coverage_counter_register
      Callsites:
        - Src:             'lib/hmap.c:30,1'
          Dst:             coverage_counter_register
    - functionName:    hmap_reserve_init_coverage
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/hmap.c:31,1'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:31,1'
              BranchSideFuncs:
                - coverage_counter_register
            - BranchSide:      'lib/hmap.c:31,1'
              BranchSideFuncs:
                - coverage_counter_register
      Callsites:
        - Src:             'lib/hmap.c:31,1'
          Dst:             coverage_counter_register
    - functionName:    hmap_reserve_count
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_reserve_get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/hmap.c:31,1'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:31,1'
              BranchSideFuncs:
                - counter_hmap_reserve_get
            - BranchSide:      'lib/hmap.c:31,1'
              BranchSideFuncs:
                - counter_hmap_reserve_get
      Callsites:
        - Src:             'lib/hmap.c:31,1'
          Dst:             counter_hmap_reserve_get
    - functionName:    counter_hmap_reserve_get
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_reserve_get_unsafe
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/hmap.c:31,1'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:31,1'
              BranchSideFuncs:
                - counter_hmap_reserve_get_unsafe
            - BranchSide:      'lib/hmap.c:31,1'
              BranchSideFuncs:
                - counter_hmap_reserve_get_unsafe
      Callsites:
        - Src:             'lib/hmap.c:31,1'
          Dst:             counter_hmap_reserve_get_unsafe
    - functionName:    counter_hmap_reserve_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_shrink_count
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_shrink_get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/hmap.c:30,1'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:30,1'
              BranchSideFuncs:
                - counter_hmap_shrink_get
            - BranchSide:      'lib/hmap.c:30,1'
              BranchSideFuncs:
                - counter_hmap_shrink_get
      Callsites:
        - Src:             'lib/hmap.c:30,1'
          Dst:             counter_hmap_shrink_get
    - functionName:    counter_hmap_shrink_get
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_shrink_get_unsafe
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/hmap.c:30,1'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:30,1'
              BranchSideFuncs:
                - counter_hmap_shrink_get_unsafe
            - BranchSide:      'lib/hmap.c:30,1'
              BranchSideFuncs:
                - counter_hmap_shrink_get_unsafe
      Callsites:
        - Src:             'lib/hmap.c:30,1'
          Dst:             counter_hmap_shrink_get_unsafe
    - functionName:    counter_hmap_shrink_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_expand_count
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_expand_get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/hmap.c:29,1'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:29,1'
              BranchSideFuncs:
                - counter_hmap_expand_get
            - BranchSide:      'lib/hmap.c:29,1'
              BranchSideFuncs:
                - counter_hmap_expand_get
      Callsites:
        - Src:             'lib/hmap.c:29,1'
          Dst:             counter_hmap_expand_get
    - functionName:    counter_hmap_expand_get
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_expand_get_unsafe
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/hmap.c:29,1'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:29,1'
              BranchSideFuncs:
                - counter_hmap_expand_get_unsafe
            - BranchSide:      'lib/hmap.c:29,1'
              BranchSideFuncs:
                - counter_hmap_expand_get_unsafe
      Callsites:
        - Src:             'lib/hmap.c:29,1'
          Dst:             counter_hmap_expand_get_unsafe
    - functionName:    counter_hmap_expand_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_pathological_count
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_pathological_get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/hmap.c:28,1'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:28,1'
              BranchSideFuncs:
                - counter_hmap_pathological_get
            - BranchSide:      'lib/hmap.c:28,1'
              BranchSideFuncs:
                - counter_hmap_pathological_get
      Callsites:
        - Src:             'lib/hmap.c:28,1'
          Dst:             counter_hmap_pathological_get
    - functionName:    counter_hmap_pathological_get
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_pathological_get_unsafe
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/hmap.c:28,1'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:28,1'
              BranchSideFuncs:
                - counter_hmap_pathological_get_unsafe
            - BranchSide:      'lib/hmap.c:28,1'
              BranchSideFuncs:
                - counter_hmap_pathological_get_unsafe
      Callsites:
        - Src:             'lib/hmap.c:28,1'
          Dst:             counter_hmap_pathological_get_unsafe
    - functionName:    counter_hmap_pathological_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_pathological_add
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 28
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - n
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_pathological_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:28,1'
          Dst:             counter_hmap_pathological_get
    - functionName:    hmap_insert_fast
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - node
        - hash
      BBCount:         1
      ICount:          42
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_pow2
      functionSourceFile: '/src/openvswitch/./include/openvswitch/util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - x
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/util.h:396,12'
          Branch Sides:
            - BranchSide:      './include/openvswitch/util.h:396,12'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/util.h:396,12'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    hmap_first_in_bucket
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 368
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - hash
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_contains
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
      BBCount:         10
      ICount:          54
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - hmap_first_in_bucket
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/hmap.c:304,5'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:305,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/hmap.c:310,5'
              BranchSideFuncs: []
        - Branch String:   'lib/hmap.c:305,13'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:306,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/hmap.c:308,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/hmap.c:304,14'
          Dst:             hmap_first_in_bucket
    - functionName:    hmap_at_position
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 296
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - pos
      BBCount:         15
      ICount:          135
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/hmap.c:273,5'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:277,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/hmap.c:293,5'
              BranchSideFuncs: []
        - Branch String:   'lib/hmap.c:277,9'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:279,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/hmap.c:290,16'
              BranchSideFuncs: []
        - Branch String:   'lib/hmap.c:279,17'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:280,21'
              BranchSideFuncs: []
            - BranchSide:      'lib/hmap.c:289,9'
              BranchSideFuncs: []
        - Branch String:   'lib/hmap.c:280,21'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:281,35'
              BranchSideFuncs: []
            - BranchSide:      'lib/hmap.c:284,36'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    random_range
      functionSourceFile: '/src/openvswitch/lib/random.h'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - max
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - random_uint32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/random.h:33,12'
          Dst:             random_uint32
    - functionName:    hmap_random_node
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
      BBCount:         15
      ICount:          89
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - random_range
        - random_uint32
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/hmap.c:238,13'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:236,5'
              BranchSideFuncs:
                - random_range.3800
            - BranchSide:      'lib/hmap.c:239,13'
              BranchSideFuncs:
                - random_range.3800
        - Branch String:   'lib/hmap.c:245,5'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:246,10'
              BranchSideFuncs:
                - random_range.3800
            - BranchSide:      'lib/hmap.c:250,22'
              BranchSideFuncs:
                - random_range.3800
        - Branch String:   'lib/hmap.c:251,5'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:252,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/hmap.c:254,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/hmap.c:237,32'
          Dst:             random_uint32
        - Src:             'lib/hmap.c:250,9'
          Dst:             random_range
    - functionName:    hmap_node_moved
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - old_node
        - node
      BBCount:         4
      ICount:          47
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/hmap.c:218,5'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:219,21'
              BranchSideFuncs: []
            - BranchSide:      'lib/hmap.c:221,15'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    hmap_reserve_add
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - n
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_reserve_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:31,1'
          Dst:             counter_hmap_reserve_get
    - functionName:    hmap_reserve_at
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - n
        - where
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calc_mask
        - hmap_reserve_add
        - resize
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/hmap.c:205,9'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:205,9'
              BranchSideFuncs:
                - hmap_reserve_add
                - resize
            - BranchSide:      'lib/hmap.c:206,9'
              BranchSideFuncs:
                - hmap_reserve_add
                - resize
      Callsites:
        - Src:             'lib/hmap.c:204,23'
          Dst:             calc_mask
        - Src:             'lib/hmap.c:206,9'
          Dst:             hmap_reserve_add
        - Src:             'lib/hmap.c:207,9'
          Dst:             resize
    - functionName:    calc_mask
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - capacity
      BBCount:         1
      ICount:          49
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    resize
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - new_mask
        - where
      BBCount:         35
      ICount:          231
      EdgeCount:       44
      CyclomaticComplexity: 11
      functionsReached:
        - hmap_destroy
        - hmap_init
        - hmap_insert_fast
        - hmap_pathological_add
        - hmap_swap
        - is_pow2
        - vlog_rate_limit
        - xmalloc
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/hmap.c:99,9'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:100,54'
              BranchSideFuncs:
                - xmalloc
                - hmap_swap
                - hmap_destroy
                - hmap_pathological_add
                - vlog_rate_limit
                - hmap_insert_fast.3797
            - BranchSide:      'lib/hmap.c:106,9'
              BranchSideFuncs:
                - hmap_swap
                - hmap_destroy
                - hmap_pathological_add
                - vlog_rate_limit
                - hmap_insert_fast.3797
        - Branch String:   'lib/hmap.c:102,9'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:103,17'
              BranchSideFuncs:
                - hmap_swap
                - hmap_destroy
                - hmap_pathological_add
                - vlog_rate_limit
                - hmap_insert_fast.3797
            - BranchSide:      'lib/hmap.c:105,5'
              BranchSideFuncs:
                - hmap_swap
                - hmap_destroy
                - hmap_pathological_add
                - vlog_rate_limit
                - hmap_insert_fast.3797
        - Branch String:   'lib/hmap.c:109,5'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:111,13'
              BranchSideFuncs:
                - hmap_swap
                - hmap_destroy
                - hmap_pathological_add
                - vlog_rate_limit
                - hmap_insert_fast.3797
            - BranchSide:      'lib/hmap.c:127,15'
              BranchSideFuncs:
                - hmap_swap
                - hmap_destroy
                - hmap_pathological_add
                - vlog_rate_limit
        - Branch String:   'lib/hmap.c:112,9'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:113,20'
              BranchSideFuncs:
                - hmap_insert_fast.3797
                - hmap_swap
                - hmap_destroy
                - hmap_pathological_add
                - vlog_rate_limit
            - BranchSide:      'lib/hmap.c:117,13'
              BranchSideFuncs:
                - hmap_swap
                - hmap_destroy
                - hmap_pathological_add
                - vlog_rate_limit
                - hmap_insert_fast.3797
        - Branch String:   'lib/hmap.c:117,13'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:118,26'
              BranchSideFuncs:
                - hmap_swap
                - hmap_destroy
                - hmap_pathological_add
                - vlog_rate_limit
                - hmap_insert_fast.3797
            - BranchSide:      'lib/hmap.c:126,5'
              BranchSideFuncs:
                - hmap_swap
                - hmap_destroy
                - hmap_pathological_add
                - vlog_rate_limit
                - hmap_insert_fast.3797
        - Branch String:   'lib/hmap.c:119,17'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:120,33'
              BranchSideFuncs:
                - hmap_swap
                - hmap_destroy
                - hmap_pathological_add
                - vlog_rate_limit
                - hmap_insert_fast.3797
            - BranchSide:      'lib/hmap.c:122,24'
              BranchSideFuncs:
                - hmap_swap
                - hmap_destroy
                - hmap_pathological_add
                - vlog_rate_limit
                - hmap_insert_fast.3797
        - Branch String:   'lib/hmap.c:130,9'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:130,9'
              BranchSideFuncs:
                - hmap_pathological_add
                - vlog_rate_limit
            - BranchSide:      'lib/hmap.c:132,9'
              BranchSideFuncs:
                - hmap_pathological_add
                - vlog_rate_limit
        - Branch String:   'lib/hmap.c:133,9'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:133,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/hmap.c:141,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/hmap.c:96,5'
          Dst:             is_pow2
        - Src:             'lib/hmap.c:98,5'
          Dst:             hmap_init
        - Src:             'lib/hmap.c:100,23'
          Dst:             xmalloc
        - Src:             'lib/hmap.c:114,13'
          Dst:             hmap_insert_fast
        - Src:             'lib/hmap.c:127,5'
          Dst:             hmap_swap
        - Src:             'lib/hmap.c:128,5'
          Dst:             hmap_destroy
        - Src:             'lib/hmap.c:132,9'
          Dst:             hmap_pathological_add
        - Src:             'lib/hmap.c:133,9'
          Dst:             vlog_rate_limit
    - functionName:    hmap_init
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 41
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_swap
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_moved
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:76,5'
          Dst:             hmap_moved
        - Src:             'lib/hmap.c:77,5'
          Dst:             hmap_moved
    - functionName:    hmap_destroy
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
      BBCount:         8
      ICount:          40
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    6
      BranchProfiles:
        - Branch String:   'lib/hmap.c:48,14'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:48,17'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/hmap.c:48,14'
              BranchSideFuncs: []
        - Branch String:   'lib/hmap.c:48,9'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:48,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/hmap.c:49,14'
              BranchSideFuncs:
                - free
      Callsites:       []
    - functionName:    hmap_moved
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/hmap.c:85,9'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:85,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/hmap.c:86,26'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    hmap_shrink_add
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - n
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_shrink_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:30,1'
          Dst:             counter_hmap_shrink_get
    - functionName:    hmap_shrink_at
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - where
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calc_mask
        - hmap_shrink_add
        - resize
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/hmap.c:188,9'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:188,9'
              BranchSideFuncs:
                - hmap_shrink_add
                - resize
            - BranchSide:      'lib/hmap.c:189,9'
              BranchSideFuncs:
                - hmap_shrink_add
                - resize
      Callsites:
        - Src:             'lib/hmap.c:187,23'
          Dst:             calc_mask
        - Src:             'lib/hmap.c:189,9'
          Dst:             hmap_shrink_add
        - Src:             'lib/hmap.c:190,9'
          Dst:             resize
    - functionName:    hmap_expand_add
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 29
      functionLinenumberEnd: 29
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - n
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_hmap_expand_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hmap.c:29,1'
          Dst:             counter_hmap_expand_get
    - functionName:    hmap_expand_at
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - where
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calc_mask
        - hmap_expand_add
        - resize
      functionUses:    7
      BranchProfiles:
        - Branch String:   'lib/hmap.c:173,9'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:173,9'
              BranchSideFuncs:
                - hmap_expand_add
                - resize
            - BranchSide:      'lib/hmap.c:174,9'
              BranchSideFuncs:
                - hmap_expand_add
                - resize
      Callsites:
        - Src:             'lib/hmap.c:172,23'
          Dst:             calc_mask
        - Src:             'lib/hmap.c:174,9'
          Dst:             hmap_expand_add
        - Src:             'lib/hmap.c:175,9'
          Dst:             resize
    - functionName:    hmap_clear
      functionSourceFile: '/src/openvswitch/lib/hmap.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
      BBCount:         4
      ICount:          33
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/hmap.c:63,9'
          Branch Sides:
            - BranchSide:      'lib/hmap.c:63,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/hmap.c:64,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    init_this_module_ovs_rcu
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-rcu.c:31,1'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:31,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/ovs-rcu.c:31,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/ovs-rcu.c:31,1'
          Dst:             vlog_insert_module
    - functionName:    ovs_list_init
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsrcu_cancel_thread_exit_cb
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 426
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - aux
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_setspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:427,5'
          Dst:             pthread_setspecific
    - functionName:    ovsrcu_thread_exit_cb
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 416
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - perthread
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsrcu_unregister__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:415,5'
          Dst:             ovsrcu_unregister__
    - functionName:    ovsrcu_unregister__
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - perthread
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_list_remove
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovsrcu_flush_cbset
        - seq_change
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/ovs-rcu.c:399,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:399,9'
              BranchSideFuncs:
                - ovsrcu_flush_cbset
                - ovs_mutex_lock_at
                - ovs_list_remove.3881
                - ovs_mutex_unlock
                - free
                - seq_change
            - BranchSide:      'lib/ovs-rcu.c:400,28'
              BranchSideFuncs:
                - ovsrcu_flush_cbset
                - ovs_mutex_lock_at
                - ovs_list_remove.3881
                - ovs_mutex_unlock
                - free
                - seq_change
      Callsites:
        - Src:             'lib/ovs-rcu.c:400,9'
          Dst:             ovsrcu_flush_cbset
        - Src:             'lib/ovs-rcu.c:403,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/ovs-rcu.c:404,5'
          Dst:             ovs_list_remove
        - Src:             'lib/ovs-rcu.c:405,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/ovs-rcu.c:409,5'
          Dst:             seq_change
    - functionName:    ovsrcu_flush_cbset
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - perthread
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsrcu_flush_cbset__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:393,5'
          Dst:             ovsrcu_flush_cbset__
    - functionName:    ovs_list_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - elem
      BBCount:         1
      ICount:          26
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsrcu_flush_cbset__
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 375
      functionLinenumberEnd: 388
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - perthread
        - protected
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - guarded_list_push_back
        - seq_change
        - seq_change_protected
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/ovs-rcu.c:378,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:378,9'
              BranchSideFuncs:
                - guarded_list_push_back
                - seq_change
                - seq_change_protected
            - BranchSide:      'lib/ovs-rcu.c:379,50'
              BranchSideFuncs:
                - guarded_list_push_back
                - seq_change
                - seq_change_protected
        - Branch String:   'lib/ovs-rcu.c:382,13'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:383,34'
              BranchSideFuncs:
                - seq_change_protected
            - BranchSide:      'lib/ovs-rcu.c:385,24'
              BranchSideFuncs:
                - seq_change
      Callsites:
        - Src:             'lib/ovs-rcu.c:379,9'
          Dst:             guarded_list_push_back
        - Src:             'lib/ovs-rcu.c:383,13'
          Dst:             seq_change_protected
        - Src:             'lib/ovs-rcu.c:385,13'
          Dst:             seq_change
    - functionName:    ovs_list_pop_front
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:264,5'
          Dst:             ovs_list_remove
    - functionName:    ovs_list_is_empty
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsrcu_postpone_thread
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - latch_is_set
        - latch_wait_at
        - ovs_barrier_block
        - ovsrcu_call_postponed
        - poll_block
        - pthread_detach
        - pthread_self
        - seq_read
        - seq_wait_at
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-rcu.c:360,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:361,35'
              BranchSideFuncs:
                - seq_read
                - ovsrcu_call_postponed
                - seq_wait_at
                - latch_wait_at
                - poll_block
                - latch_is_set
                - ovs_barrier_block
            - BranchSide:      'lib/ovs-rcu.c:369,5'
              BranchSideFuncs:
                - ovs_barrier_block
        - Branch String:   'lib/ovs-rcu.c:362,13'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:360,5'
              BranchSideFuncs:
                - latch_is_set
                - ovs_barrier_block
                - seq_read
                - ovsrcu_call_postponed
                - seq_wait_at
                - latch_wait_at
                - poll_block
            - BranchSide:      'lib/ovs-rcu.c:363,13'
              BranchSideFuncs:
                - seq_wait_at
                - latch_wait_at
                - poll_block
                - latch_is_set
                - ovs_barrier_block
                - seq_read
                - ovsrcu_call_postponed
      Callsites:
        - Src:             'lib/ovs-rcu.c:358,20'
          Dst:             pthread_self
        - Src:             'lib/ovs-rcu.c:358,5'
          Dst:             pthread_detach
        - Src:             'lib/ovs-rcu.c:360,13'
          Dst:             latch_is_set
        - Src:             'lib/ovs-rcu.c:361,26'
          Dst:             seq_read
        - Src:             'lib/ovs-rcu.c:362,14'
          Dst:             ovsrcu_call_postponed
        - Src:             'lib/ovs-rcu.c:363,13'
          Dst:             seq_wait_at
        - Src:             'lib/ovs-rcu.c:364,13'
          Dst:             latch_wait_at
        - Src:             'lib/ovs-rcu.c:365,13'
          Dst:             poll_block
        - Src:             'lib/ovs-rcu.c:369,5'
          Dst:             ovs_barrier_block
    - functionName:    pthread_detach
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsrcu_call_postponed
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 353
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         16
      ICount:          96
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - guarded_list_pop_all
        - ovs_list_is_empty
        - ovs_list_pop_front
        - ovsrcu_synchronize
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/ovs-rcu.c:335,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:332,26'
              BranchSideFuncs:
                - guarded_list_pop_all
                - ovs_list_is_empty.3883
                - ovsrcu_synchronize
                - ovs_list_is_empty.3883
                - ovs_list_pop_front.3882
                - free
                - free
            - BranchSide:      'lib/ovs-rcu.c:335,5'
              BranchSideFuncs:
                - guarded_list_pop_all
                - ovs_list_is_empty.3883
                - ovsrcu_synchronize
                - ovs_list_is_empty.3883
                - ovs_list_pop_front.3882
                - free
                - free
        - Branch String:   'lib/ovs-rcu.c:336,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:337,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/ovs-rcu.c:340,5'
              BranchSideFuncs:
                - ovsrcu_synchronize
                - ovs_list_is_empty.3883
                - ovs_list_pop_front.3882
                - free
                - free
        - Branch String:   'lib/ovs-rcu.c:342,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:342,5'
              BranchSideFuncs:
                - free
                - free
                - ovs_list_is_empty.3883
                - ovs_list_pop_front.3882
            - BranchSide:      'lib/ovs-rcu.c:342,5'
              BranchSideFuncs:
                - ovs_list_pop_front.3882
                - free
                - free
                - ovs_list_is_empty.3883
        - Branch String:   'lib/ovs-rcu.c:342,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:345,19'
              BranchSideFuncs:
                - free
                - free
                - ovs_list_is_empty.3883
                - ovs_list_pop_front.3882
            - BranchSide:      'lib/ovs-rcu.c:352,5'
              BranchSideFuncs: []
        - Branch String:   'lib/ovs-rcu.c:345,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:346,13'
              BranchSideFuncs:
                - free
                - free
                - ovs_list_is_empty.3883
                - ovs_list_pop_front.3882
            - BranchSide:      'lib/ovs-rcu.c:348,14'
              BranchSideFuncs:
                - free
                - free
                - ovs_list_is_empty.3883
                - ovs_list_pop_front.3882
      Callsites:
        - Src:             'lib/ovs-rcu.c:335,5'
          Dst:             guarded_list_pop_all
        - Src:             'lib/ovs-rcu.c:336,9'
          Dst:             ovs_list_is_empty
        - Src:             'lib/ovs-rcu.c:340,5'
          Dst:             ovsrcu_synchronize
        - Src:             'lib/ovs-rcu.c:342,5'
          Dst:             ovs_list_is_empty
        - Src:             'lib/ovs-rcu.c:342,5'
          Dst:             ovs_list_pop_front
    - functionName:    ovsrcu_synchronize
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         28
      ICount:          163
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovs_strlcpy
        - ovsrcu_quiesce_end
        - ovsrcu_quiesce_start
        - poll_block
        - poll_timer_wait_until_at
        - seq_read
        - seq_wait_at
        - single_threaded
        - time_msec
        - vlog
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/ovs-rcu.c:195,18'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:195,18'
              BranchSideFuncs:
                - single_threaded
                - seq_read
                - ovsrcu_quiesce_start
                - time_msec
                - seq_read
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - time_msec
                - poll_timer_wait_until_at
                - seq_wait_at
                - poll_block
                - vlog
                - ovsrcu_quiesce_end
                - ovs_strlcpy
            - BranchSide:      'lib/ovs-rcu.c:195,18'
              BranchSideFuncs:
                - single_threaded
                - seq_read
                - ovsrcu_quiesce_start
                - time_msec
                - seq_read
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - time_msec
                - poll_timer_wait_until_at
                - seq_wait_at
                - poll_block
                - vlog
                - ovsrcu_quiesce_end
                - ovs_strlcpy
        - Branch String:   'lib/ovs-rcu.c:199,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:200,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/ovs-rcu.c:203,29'
              BranchSideFuncs:
                - seq_read
                - ovsrcu_quiesce_start
                - time_msec
                - seq_read
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - time_msec
                - poll_timer_wait_until_at
                - seq_wait_at
                - poll_block
                - vlog
                - ovsrcu_quiesce_end
                - ovs_strlcpy
        - Branch String:   'lib/ovs-rcu.c:215,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:215,9'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - time_msec
                - poll_timer_wait_until_at
                - seq_wait_at
                - poll_block
                - seq_read
                - ovs_mutex_lock_at
                - vlog
                - ovsrcu_quiesce_end
                - ovs_strlcpy
            - BranchSide:      'lib/ovs-rcu.c:215,9'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - time_msec
                - poll_timer_wait_until_at
                - seq_wait_at
                - poll_block
                - seq_read
                - ovs_mutex_lock_at
                - vlog
                - ovsrcu_quiesce_end
                - ovs_strlcpy
        - Branch String:   'lib/ovs-rcu.c:215,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:216,17'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - time_msec
                - poll_timer_wait_until_at
                - seq_wait_at
                - poll_block
                - seq_read
                - ovs_mutex_lock_at
                - vlog
                - ovsrcu_quiesce_end
                - ovs_strlcpy
            - BranchSide:      'lib/ovs-rcu.c:222,9'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - time_msec
                - poll_timer_wait_until_at
                - seq_wait_at
                - poll_block
                - seq_read
                - ovs_mutex_lock_at
                - ovs_strlcpy
                - vlog
                - ovsrcu_quiesce_end
        - Branch String:   'lib/ovs-rcu.c:216,17'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:217,17'
              BranchSideFuncs:
                - ovs_strlcpy
                - ovs_mutex_unlock
                - time_msec
                - poll_timer_wait_until_at
                - seq_wait_at
                - poll_block
                - seq_read
                - ovs_mutex_lock_at
                - vlog
                - ovsrcu_quiesce_end
            - BranchSide:      'lib/ovs-rcu.c:221,9'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - time_msec
                - poll_timer_wait_until_at
                - seq_wait_at
                - poll_block
                - seq_read
                - ovs_mutex_lock_at
                - vlog
                - ovsrcu_quiesce_end
                - ovs_strlcpy
        - Branch String:   'lib/ovs-rcu.c:224,13'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:225,13'
              BranchSideFuncs:
                - ovsrcu_quiesce_end
            - BranchSide:      'lib/ovs-rcu.c:228,19'
              BranchSideFuncs:
                - time_msec
                - poll_timer_wait_until_at
                - seq_wait_at
                - poll_block
                - seq_read
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - ovsrcu_quiesce_end
                - ovs_strlcpy
                - vlog
        - Branch String:   'lib/ovs-rcu.c:229,13'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:230,13'
              BranchSideFuncs:
                - poll_timer_wait_until_at
                - seq_wait_at
                - poll_block
                - seq_read
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - time_msec
                - ovsrcu_quiesce_end
                - ovs_strlcpy
                - vlog
            - BranchSide:      'lib/ovs-rcu.c:234,9'
              BranchSideFuncs:
                - poll_timer_wait_until_at
                - seq_wait_at
                - poll_block
                - seq_read
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - time_msec
                - vlog
                - ovsrcu_quiesce_end
                - ovs_strlcpy
        - Branch String:   'lib/ovs-rcu.c:230,13'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:230,13'
              BranchSideFuncs:
                - vlog
                - poll_timer_wait_until_at
                - seq_wait_at
                - poll_block
                - seq_read
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - time_msec
                - ovsrcu_quiesce_end
                - ovs_strlcpy
            - BranchSide:      'lib/ovs-rcu.c:232,31'
              BranchSideFuncs:
                - poll_timer_wait_until_at
                - seq_wait_at
                - poll_block
                - seq_read
                - ovs_mutex_lock_at
                - ovs_mutex_unlock
                - time_msec
                - vlog
                - ovsrcu_quiesce_end
                - ovs_strlcpy
      Callsites:
        - Src:             'lib/ovs-rcu.c:199,9'
          Dst:             single_threaded
        - Src:             'lib/ovs-rcu.c:203,20'
          Dst:             seq_read
        - Src:             'lib/ovs-rcu.c:204,5'
          Dst:             ovsrcu_quiesce_start
        - Src:             'lib/ovs-rcu.c:205,13'
          Dst:             time_msec
        - Src:             'lib/ovs-rcu.c:208,30'
          Dst:             seq_read
        - Src:             'lib/ovs-rcu.c:214,9'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/ovs-rcu.c:217,17'
          Dst:             ovs_strlcpy
        - Src:             'lib/ovs-rcu.c:222,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/ovs-rcu.c:228,19'
          Dst:             time_msec
        - Src:             'lib/ovs-rcu.c:230,13'
          Dst:             vlog
        - Src:             'lib/ovs-rcu.c:234,9'
          Dst:             poll_timer_wait_until_at
        - Src:             'lib/ovs-rcu.c:236,9'
          Dst:             seq_wait_at
        - Src:             'lib/ovs-rcu.c:237,9'
          Dst:             poll_block
        - Src:             'lib/ovs-rcu.c:239,5'
          Dst:             ovsrcu_quiesce_end
    - functionName:    ovsrcu_quiesce_start
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsrcu_init_module
        - ovsrcu_quiesced
        - ovsrcu_unregister__
        - pthread_getspecific
        - pthread_setspecific
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/ovs-rcu.c:134,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:132,30'
              BranchSideFuncs:
                - ovsrcu_init_module
                - pthread_getspecific
                - ovsrcu_quiesced
                - pthread_setspecific
                - ovsrcu_unregister__
            - BranchSide:      'lib/ovs-rcu.c:134,5'
              BranchSideFuncs:
                - ovsrcu_init_module
                - pthread_getspecific
                - ovsrcu_quiesced
                - pthread_setspecific
                - ovsrcu_unregister__
        - Branch String:   'lib/ovs-rcu.c:136,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:136,9'
              BranchSideFuncs:
                - pthread_setspecific
                - ovsrcu_unregister__
                - ovsrcu_quiesced
            - BranchSide:      'lib/ovs-rcu.c:137,29'
              BranchSideFuncs:
                - pthread_setspecific
                - ovsrcu_unregister__
                - ovsrcu_quiesced
      Callsites:
        - Src:             'lib/ovs-rcu.c:134,5'
          Dst:             ovsrcu_init_module
        - Src:             'lib/ovs-rcu.c:135,17'
          Dst:             pthread_getspecific
        - Src:             'lib/ovs-rcu.c:137,9'
          Dst:             pthread_setspecific
        - Src:             'lib/ovs-rcu.c:138,9'
          Dst:             ovsrcu_unregister__
        - Src:             'lib/ovs-rcu.c:141,5'
          Dst:             ovsrcu_quiesced
    - functionName:    ovsrcu_quiesce_end
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsrcu_perthread_get
      functionUses:    6
      BranchProfiles:
        - Branch String:   'lib/ovs-rcu.c:108,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:108,5'
              BranchSideFuncs:
                - ovsrcu_perthread_get
            - BranchSide:      'lib/ovs-rcu.c:108,5'
              BranchSideFuncs:
                - ovsrcu_perthread_get
      Callsites:
        - Src:             'lib/ovs-rcu.c:108,5'
          Dst:             ovsrcu_perthread_get
    - functionName:    ovsrcu_perthread_get
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - get_subprogram_name
        - ovs_list_push_back
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovs_strlcpy
        - ovsrcu_init_module
        - pthread_getspecific
        - pthread_setspecific
        - seq_read
        - xmalloc
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/ovs-rcu.c:79,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:77,30'
              BranchSideFuncs:
                - ovsrcu_init_module
                - pthread_getspecific
                - get_subprogram_name
                - xmalloc
                - seq_read
                - ovs_strlcpy
                - ovs_mutex_lock_at
                - ovs_list_push_back.3896
                - ovs_mutex_unlock
                - pthread_setspecific
            - BranchSide:      'lib/ovs-rcu.c:79,5'
              BranchSideFuncs:
                - ovsrcu_init_module
                - pthread_getspecific
                - get_subprogram_name
                - xmalloc
                - seq_read
                - ovs_strlcpy
                - ovs_mutex_lock_at
                - ovs_list_push_back.3896
                - ovs_mutex_unlock
                - pthread_setspecific
        - Branch String:   'lib/ovs-rcu.c:82,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:82,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/ovs-rcu.c:83,28'
              BranchSideFuncs:
                - get_subprogram_name
                - xmalloc
                - seq_read
                - ovs_strlcpy
                - ovs_mutex_lock_at
                - ovs_list_push_back.3896
                - ovs_mutex_unlock
                - pthread_setspecific
        - Branch String:   'lib/ovs-rcu.c:88,38'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:88,48'
              BranchSideFuncs:
                - ovs_strlcpy
                - ovs_mutex_lock_at
                - ovs_list_push_back.3896
                - ovs_mutex_unlock
                - pthread_setspecific
            - BranchSide:      'lib/ovs-rcu.c:88,9'
              BranchSideFuncs:
                - ovs_strlcpy
                - ovs_mutex_lock_at
                - ovs_list_push_back.3896
                - ovs_mutex_unlock
                - pthread_setspecific
      Callsites:
        - Src:             'lib/ovs-rcu.c:79,5'
          Dst:             ovsrcu_init_module
        - Src:             'lib/ovs-rcu.c:81,17'
          Dst:             pthread_getspecific
        - Src:             'lib/ovs-rcu.c:83,28'
          Dst:             get_subprogram_name
        - Src:             'lib/ovs-rcu.c:85,21'
          Dst:             xmalloc
        - Src:             'lib/ovs-rcu.c:86,28'
          Dst:             seq_read
        - Src:             'lib/ovs-rcu.c:88,9'
          Dst:             ovs_strlcpy
        - Src:             'lib/ovs-rcu.c:91,9'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/ovs-rcu.c:92,9'
          Dst:             ovs_list_push_back
        - Src:             'lib/ovs-rcu.c:93,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/ovs-rcu.c:95,9'
          Dst:             pthread_setspecific
    - functionName:    ovsrcu_init_module
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 432
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fatal_signal_add_hook
        - guarded_list_init
        - ovs_list_init
        - ovs_mutex_init
        - ovsrcu_cancel_thread_exit_cb
        - ovsrcu_thread_exit_cb
        - ovsthread_once_done
        - ovsthread_once_start
        - seq_create
        - xpthread_key_create
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/ovs-rcu.c:434,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:434,9'
              BranchSideFuncs:
                - ovsthread_once_start.3898
                - seq_create
                - xpthread_key_create
                - fatal_signal_add_hook
                - ovs_list_init.3879
                - ovs_mutex_init
                - guarded_list_init
                - seq_create
                - ovsthread_once_done
            - BranchSide:      'lib/ovs-rcu.c:434,9'
              BranchSideFuncs:
                - ovsthread_once_start.3898
                - seq_create
                - xpthread_key_create
                - fatal_signal_add_hook
                - ovs_list_init.3879
                - ovs_mutex_init
                - guarded_list_init
                - seq_create
                - ovsthread_once_done
        - Branch String:   'lib/ovs-rcu.c:434,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:434,9'
              BranchSideFuncs:
                - seq_create
                - xpthread_key_create
                - fatal_signal_add_hook
                - ovs_list_init.3879
                - ovs_mutex_init
                - guarded_list_init
                - seq_create
                - ovsthread_once_done
            - BranchSide:      'lib/ovs-rcu.c:435,24'
              BranchSideFuncs:
                - seq_create
                - xpthread_key_create
                - fatal_signal_add_hook
                - ovs_list_init.3879
                - ovs_mutex_init
                - guarded_list_init
                - seq_create
                - ovsthread_once_done
      Callsites:
        - Src:             'lib/ovs-rcu.c:434,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/ovs-rcu.c:435,24'
          Dst:             seq_create
        - Src:             'lib/ovs-rcu.c:436,9'
          Dst:             xpthread_key_create
        - Src:             'lib/ovs-rcu.c:436,9'
          Dst:             ovsrcu_thread_exit_cb
        - Src:             'lib/ovs-rcu.c:437,9'
          Dst:             fatal_signal_add_hook
        - Src:             'lib/ovs-rcu.c:437,9'
          Dst:             ovsrcu_cancel_thread_exit_cb
        - Src:             'lib/ovs-rcu.c:438,9'
          Dst:             ovs_list_init
        - Src:             'lib/ovs-rcu.c:439,9'
          Dst:             ovs_mutex_init
        - Src:             'lib/ovs-rcu.c:441,9'
          Dst:             guarded_list_init
        - Src:             'lib/ovs-rcu.c:442,30'
          Dst:             seq_create
        - Src:             'lib/ovs-rcu.c:444,9'
          Dst:             ovsthread_once_done
    - functionName:    ovs_list_push_back
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
        - elem
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:205,5'
          Dst:             ovs_list_insert
    - functionName:    ovs_list_insert
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - before
        - elem
      BBCount:         1
      ICount:          30
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - once
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/thread.h:161,12'
          Branch Sides:
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs:
                - ovsthread_once_start__
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    ovsrcu_quiesced
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          33
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - latch_init
        - ovs_barrier_init
        - ovs_thread_create
        - ovsrcu_call_postponed
        - ovsrcu_postpone_thread
        - ovsthread_once_done
        - ovsthread_once_start
        - single_threaded
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/ovs-rcu.c:114,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:114,9'
              BranchSideFuncs:
                - single_threaded
                - ovsthread_once_start.3898
                - latch_init
                - ovs_barrier_init
                - ovs_thread_create
                - ovsthread_once_done
                - ovsrcu_call_postponed
            - BranchSide:      'lib/ovs-rcu.c:114,9'
              BranchSideFuncs:
                - single_threaded
                - ovsthread_once_start.3898
                - latch_init
                - ovs_barrier_init
                - ovs_thread_create
                - ovsthread_once_done
                - ovsrcu_call_postponed
        - Branch String:   'lib/ovs-rcu.c:114,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:115,9'
              BranchSideFuncs:
                - ovsrcu_call_postponed
            - BranchSide:      'lib/ovs-rcu.c:118,13'
              BranchSideFuncs:
                - ovsthread_once_start.3898
                - latch_init
                - ovs_barrier_init
                - ovs_thread_create
                - ovsthread_once_done
      Callsites:
        - Src:             'lib/ovs-rcu.c:114,9'
          Dst:             single_threaded
        - Src:             'lib/ovs-rcu.c:115,9'
          Dst:             ovsrcu_call_postponed
        - Src:             'lib/ovs-rcu.c:118,13'
          Dst:             ovsthread_once_start
        - Src:             'lib/ovs-rcu.c:119,13'
          Dst:             latch_init
        - Src:             'lib/ovs-rcu.c:120,13'
          Dst:             ovs_barrier_init
        - Src:             'lib/ovs-rcu.c:121,13'
          Dst:             ovs_thread_create
        - Src:             'lib/ovs-rcu.c:121,13'
          Dst:             ovsrcu_postpone_thread
        - Src:             'lib/ovs-rcu.c:122,13'
          Dst:             ovsthread_once_done
    - functionName:    ovsrcu_barrier_func
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 450
      functionLinenumberEnd: 453
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - seq_
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - seq_change
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/ovs-rcu.c:452,5'
          Dst:             seq_change
    - functionName:    ovsrcu_barrier
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 483
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         7
      ICount:          43
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - ovsrcu_barrier_func
        - ovsrcu_postpone__
        - ovsrcu_synchronize
        - poll_block
        - seq_create
        - seq_destroy
        - seq_read
        - seq_wait_at
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-rcu.c:468,23'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:468,17'
              BranchSideFuncs:
                - seq_create
                - ovsrcu_synchronize
                - seq_read
                - ovsrcu_postpone__
                - seq_wait_at
                - poll_block
                - seq_read
                - seq_destroy
            - BranchSide:      'lib/ovs-rcu.c:478,9'
              BranchSideFuncs:
                - seq_create
                - ovsrcu_synchronize
                - seq_read
                - ovsrcu_postpone__
                - seq_wait_at
                - poll_block
                - seq_read
                - seq_destroy
        - Branch String:   'lib/ovs-rcu.c:480,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:478,9'
              BranchSideFuncs:
                - seq_wait_at
                - poll_block
                - seq_read
                - seq_destroy
            - BranchSide:      'lib/ovs-rcu.c:482,17'
              BranchSideFuncs:
                - seq_destroy
      Callsites:
        - Src:             'lib/ovs-rcu.c:468,23'
          Dst:             seq_create
        - Src:             'lib/ovs-rcu.c:470,5'
          Dst:             ovsrcu_synchronize
        - Src:             'lib/ovs-rcu.c:474,22'
          Dst:             seq_read
        - Src:             'lib/ovs-rcu.c:475,5'
          Dst:             ovsrcu_postpone__
        - Src:             'lib/ovs-rcu.c:475,5'
          Dst:             ovsrcu_barrier_func
        - Src:             'lib/ovs-rcu.c:478,9'
          Dst:             seq_wait_at
        - Src:             'lib/ovs-rcu.c:479,9'
          Dst:             poll_block
        - Src:             'lib/ovs-rcu.c:480,23'
          Dst:             seq_read
        - Src:             'lib/ovs-rcu.c:482,5'
          Dst:             seq_destroy
    - functionName:    ovsrcu_postpone__
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - function
        - aux
      BBCount:         9
      ICount:          101
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovsrcu_perthread_get
        - x2nrealloc
        - xmalloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-rcu.c:312,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:313,36'
              BranchSideFuncs:
                - x2nrealloc
            - BranchSide:      'lib/ovs-rcu.c:319,9'
              BranchSideFuncs:
                - x2nrealloc
        - Branch String:   'lib/ovs-rcu.c:319,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:319,9'
              BranchSideFuncs:
                - x2nrealloc
            - BranchSide:      'lib/ovs-rcu.c:320,33'
              BranchSideFuncs:
                - x2nrealloc
      Callsites:
        - Src:             'lib/ovs-rcu.c:307,42'
          Dst:             ovsrcu_perthread_get
        - Src:             'lib/ovs-rcu.c:313,36'
          Dst:             xmalloc
        - Src:             'lib/ovs-rcu.c:314,22'
          Dst:             xmalloc
        - Src:             'lib/ovs-rcu.c:320,22'
          Dst:             x2nrealloc
    - functionName:    ovsrcu_exit
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 283
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          51
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - latch_set
        - ovs_barrier_block
        - ovsrcu_call_postponed
        - ovsrcu_quiesced
        - ovsrcu_synchronize
        - single_threaded
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-rcu.c:258,10'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:258,10'
              BranchSideFuncs:
                - single_threaded
                - ovsrcu_quiesced
                - latch_set
                - ovs_barrier_block
                - ovsrcu_synchronize
                - ovsrcu_call_postponed
            - BranchSide:      'lib/ovs-rcu.c:258,10'
              BranchSideFuncs:
                - single_threaded
                - ovsrcu_quiesced
                - latch_set
                - ovs_barrier_block
                - ovsrcu_synchronize
                - ovsrcu_call_postponed
        - Branch String:   'lib/ovs-rcu.c:258,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:259,9'
              BranchSideFuncs:
                - ovsrcu_synchronize
                - ovsrcu_call_postponed
            - BranchSide:      'lib/ovs-rcu.c:277,14'
              BranchSideFuncs:
                - ovsrcu_synchronize
                - ovsrcu_call_postponed
        - Branch String:   'lib/ovs-rcu.c:277,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:277,5'
              BranchSideFuncs:
                - ovsrcu_synchronize
                - ovsrcu_call_postponed
            - BranchSide:      'lib/ovs-rcu.c:278,9'
              BranchSideFuncs:
                - ovsrcu_synchronize
                - ovsrcu_call_postponed
        - Branch String:   'lib/ovs-rcu.c:279,13'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:280,13'
              BranchSideFuncs:
                - ovsrcu_synchronize
                - ovsrcu_call_postponed
            - BranchSide:      'lib/ovs-rcu.c:282,5'
              BranchSideFuncs:
                - ovsrcu_synchronize
                - ovsrcu_call_postponed
      Callsites:
        - Src:             'lib/ovs-rcu.c:258,10'
          Dst:             single_threaded
        - Src:             'lib/ovs-rcu.c:259,9'
          Dst:             ovsrcu_quiesced
        - Src:             'lib/ovs-rcu.c:260,9'
          Dst:             latch_set
        - Src:             'lib/ovs-rcu.c:261,9'
          Dst:             ovs_barrier_block
        - Src:             'lib/ovs-rcu.c:278,9'
          Dst:             ovsrcu_synchronize
        - Src:             'lib/ovs-rcu.c:279,14'
          Dst:             ovsrcu_call_postponed
    - functionName:    ovsrcu_is_quiescent
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovsrcu_init_module
        - pthread_getspecific
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-rcu.c:188,5'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:188,5'
              BranchSideFuncs:
                - ovsrcu_init_module
                - pthread_getspecific
            - BranchSide:      'lib/ovs-rcu.c:188,5'
              BranchSideFuncs:
                - ovsrcu_init_module
                - pthread_getspecific
      Callsites:
        - Src:             'lib/ovs-rcu.c:188,5'
          Dst:             ovsrcu_init_module
        - Src:             'lib/ovs-rcu.c:189,12'
          Dst:             pthread_getspecific
    - functionName:    ovsrcu_try_quiesce
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovsrcu_flush_cbset__
        - ovsrcu_perthread_get
        - ovsrcu_quiesced
        - seq_change_protected
        - seq_read
        - seq_try_lock
        - seq_unlock
        - single_threaded
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/ovs-rcu.c:168,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:167,30'
              BranchSideFuncs:
                - single_threaded
                - ovsrcu_perthread_get
                - seq_try_lock
                - seq_read
                - seq_change_protected
                - seq_unlock
                - ovsrcu_quiesced
                - ovsrcu_flush_cbset__
            - BranchSide:      'lib/ovs-rcu.c:168,9'
              BranchSideFuncs:
                - single_threaded
                - ovsrcu_perthread_get
                - seq_try_lock
                - seq_read
                - seq_change_protected
                - seq_unlock
                - ovsrcu_quiesced
                - ovsrcu_flush_cbset__
        - Branch String:   'lib/ovs-rcu.c:172,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:172,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/ovs-rcu.c:173,37'
              BranchSideFuncs:
                - seq_read
                - seq_change_protected
                - seq_unlock
                - ovsrcu_quiesced
                - ovsrcu_flush_cbset__
        - Branch String:   'lib/ovs-rcu.c:174,13'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:175,34'
              BranchSideFuncs:
                - ovsrcu_flush_cbset__
                - seq_change_protected
                - seq_unlock
                - ovsrcu_quiesced
            - BranchSide:      'lib/ovs-rcu.c:177,30'
              BranchSideFuncs:
                - seq_change_protected
                - seq_unlock
                - ovsrcu_quiesced
      Callsites:
        - Src:             'lib/ovs-rcu.c:170,5'
          Dst:             single_threaded
        - Src:             'lib/ovs-rcu.c:171,17'
          Dst:             ovsrcu_perthread_get
        - Src:             'lib/ovs-rcu.c:172,10'
          Dst:             seq_try_lock
        - Src:             'lib/ovs-rcu.c:173,28'
          Dst:             seq_read
        - Src:             'lib/ovs-rcu.c:175,13'
          Dst:             ovsrcu_flush_cbset__
        - Src:             'lib/ovs-rcu.c:177,9'
          Dst:             seq_change_protected
        - Src:             'lib/ovs-rcu.c:178,9'
          Dst:             seq_unlock
        - Src:             'lib/ovs-rcu.c:179,9'
          Dst:             ovsrcu_quiesced
    - functionName:    ovsrcu_quiesce
      functionSourceFile: '/src/openvswitch/lib/ovs-rcu.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsrcu_flush_cbset
        - ovsrcu_perthread_get
        - ovsrcu_quiesced
        - seq_change
        - seq_read
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/ovs-rcu.c:154,17'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:152,30'
              BranchSideFuncs:
                - ovsrcu_perthread_get
                - seq_read
                - seq_change
                - ovsrcu_quiesced
                - ovsrcu_flush_cbset
            - BranchSide:      'lib/ovs-rcu.c:154,17'
              BranchSideFuncs:
                - ovsrcu_perthread_get
                - seq_read
                - seq_change
                - ovsrcu_quiesced
                - ovsrcu_flush_cbset
        - Branch String:   'lib/ovs-rcu.c:156,9'
          Branch Sides:
            - BranchSide:      'lib/ovs-rcu.c:156,9'
              BranchSideFuncs:
                - ovsrcu_flush_cbset
                - seq_change
                - ovsrcu_quiesced
            - BranchSide:      'lib/ovs-rcu.c:157,28'
              BranchSideFuncs:
                - ovsrcu_flush_cbset
                - seq_change
                - ovsrcu_quiesced
      Callsites:
        - Src:             'lib/ovs-rcu.c:154,17'
          Dst:             ovsrcu_perthread_get
        - Src:             'lib/ovs-rcu.c:155,24'
          Dst:             seq_read
        - Src:             'lib/ovs-rcu.c:157,9'
          Dst:             ovsrcu_flush_cbset
        - Src:             'lib/ovs-rcu.c:159,5'
          Dst:             seq_change
        - Src:             'lib/ovs-rcu.c:161,5'
          Dst:             ovsrcu_quiesced
    - functionName:    eth_addr_compare_3way
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - memcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.h:262,12'
          Dst:             memcmp
    - functionName:    dp_packet_l2_pad_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_tail
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_data
        - dp_packet_size
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:326,21'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.h:326,41'
          Dst:             dp_packet_size
    - functionName:    dp_packet_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 832
      functionLinenumberEnd: 834
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __packet_data
        - dp_packet_base
      functionUses:    13
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:833,12'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:833,12'
              BranchSideFuncs:
                - dp_packet_base
                - __packet_data
            - BranchSide:      'lib/dp-packet.h:834,38'
              BranchSideFuncs:
                - dp_packet_base
                - __packet_data
      Callsites:
        - Src:             'lib/dp-packet.h:833,12'
          Dst:             __packet_data
        - Src:             'lib/dp-packet.h:834,23'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.h:834,43'
          Dst:             __packet_data
    - functionName:    dp_packet_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 749
      functionLinenumberEnd: 750
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __packet_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 761
      functionLinenumberEnd: 762
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_base
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 737
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ipv6_addr_equals
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1177
      functionLinenumberEnd: 1179
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         8
      ICount:          84
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/packets.h:1179,12'
          Branch Sides:
            - BranchSide:      'lib/packets.h:1179,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.h:1179,12'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.h:1179,12'
          Branch Sides:
            - BranchSide:      'lib/packets.h:1179,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.h:1179,12'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.h:1179,12'
          Branch Sides:
            - BranchSide:      'lib/packets.h:1179,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.h:1179,12'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    raw_ctz
      functionSourceFile: '/src/openvswitch/lib/util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 282
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - n
      BBCount:         7
      ICount:          37
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.h:286,51'
          Branch Sides:
            - BranchSide:      'lib/util.h:286,54'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.h:288,31'
              BranchSideFuncs: []
        - Branch String:   'lib/util.h:286,13'
          Branch Sides:
            - BranchSide:      'lib/util.h:287,29'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.h:288,31'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    free_afxdp_buf
      functionSourceFile: '/src/openvswitch/lib/netdev-afxdp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    free_dpdk_buf
      functionSourceFile: '/src/openvswitch/lib/netdev-dpdk.h'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - buf
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_reset_outer_offsets
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    be32_to_be16
      functionSourceFile: '/src/openvswitch/lib/byte-order.h'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - x
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __packet_set_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 767
      functionLinenumberEnd: 769
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - b
        - v
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_set_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 755
      functionLinenumberEnd: 757
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - b
        - v
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_set_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 839
      functionLinenumberEnd: 845
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
        - data
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __packet_set_data
        - dp_packet_base
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:840,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:841,27'
              BranchSideFuncs:
                - dp_packet_base
                - __packet_set_data
            - BranchSide:      'lib/dp-packet.h:843,27'
              BranchSideFuncs:
                - __packet_set_data
      Callsites:
        - Src:             'lib/dp-packet.h:841,55'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.h:841,9'
          Dst:             __packet_set_data
        - Src:             'lib/dp-packet.h:843,9'
          Dst:             __packet_set_data
    - functionName:    hash_rot
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - x
        - k
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mhash_add__
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_rot
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/hash.h:66,9'
          Branch Sides:
            - BranchSide:      'lib/hash.h:67,16'
              BranchSideFuncs:
                - hash_rot.4225
            - BranchSide:      'lib/hash.h:70,10'
              BranchSideFuncs:
                - hash_rot.4225
      Callsites:
        - Src:             'lib/hash.h:71,12'
          Dst:             hash_rot
    - functionName:    mhash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_rot
        - mhash_add__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:78,12'
          Dst:             mhash_add__
        - Src:             'lib/hash.h:79,12'
          Dst:             hash_rot
    - functionName:    hash_add
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_add
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:109,12'
          Dst:             mhash_add
    - functionName:    mhash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 90
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - hash
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_add64
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - hash
        - data
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:114,21'
          Dst:             hash_add
        - Src:             'lib/hash.h:114,12'
          Dst:             hash_add
    - functionName:    hash_finish
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 119
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - hash
        - final
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mhash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:119,12'
          Dst:             mhash_finish
    - functionName:    hash_uint64_basis
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - x
        - basis
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_add64
        - hash_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:160,24'
          Dst:             hash_add64
        - Src:             'lib/hash.h:160,12'
          Dst:             hash_finish
    - functionName:    hmap_insert_fast
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - node
        - hash
      BBCount:         1
      ICount:          42
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    packet_sctp_complete_csum
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2092
      functionLinenumberEnd: 2116
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - p
        - inner
      BBCount:         9
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - crc32c
        - dp_packet_inner_l4
        - dp_packet_inner_l4_checksum_set_good
        - dp_packet_inner_l4_size
        - dp_packet_l4
        - dp_packet_l4_checksum_set_good
        - dp_packet_l4_size
        - put_16aligned_be32
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/packets.c:2097,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:2098,33'
              BranchSideFuncs:
                - dp_packet_inner_l4
                - dp_packet_inner_l4_size
                - put_16aligned_be32
                - crc32c
                - put_16aligned_be32
                - dp_packet_l4_checksum_set_good
                - dp_packet_inner_l4_checksum_set_good
            - BranchSide:      'lib/packets.c:2101,27'
              BranchSideFuncs:
                - dp_packet_l4
                - dp_packet_l4_size
                - put_16aligned_be32
                - crc32c
                - put_16aligned_be32
                - dp_packet_l4_checksum_set_good
                - dp_packet_inner_l4_checksum_set_good
        - Branch String:   'lib/packets.c:2111,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:2112,46'
              BranchSideFuncs:
                - dp_packet_inner_l4_checksum_set_good
            - BranchSide:      'lib/packets.c:2114,40'
              BranchSideFuncs:
                - dp_packet_l4_checksum_set_good
      Callsites:
        - Src:             'lib/packets.c:2098,14'
          Dst:             dp_packet_inner_l4
        - Src:             'lib/packets.c:2099,18'
          Dst:             dp_packet_inner_l4_size
        - Src:             'lib/packets.c:2101,14'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:2102,18'
          Dst:             dp_packet_l4_size
        - Src:             'lib/packets.c:2107,5'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:2108,12'
          Dst:             crc32c
        - Src:             'lib/packets.c:2109,5'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:2112,9'
          Dst:             dp_packet_inner_l4_checksum_set_good
        - Src:             'lib/packets.c:2114,9'
          Dst:             dp_packet_l4_checksum_set_good
    - functionName:    dp_packet_inner_l4
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 528
      functionLinenumberEnd: 530
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:529,12'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:529,12'
              BranchSideFuncs:
                - dp_packet_data
            - BranchSide:      'lib/dp-packet.h:530,38'
              BranchSideFuncs:
                - dp_packet_data
      Callsites:
        - Src:             'lib/dp-packet.h:530,23'
          Dst:             dp_packet_data
    - functionName:    dp_packet_inner_l4_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 540
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_inner_l4
        - dp_packet_l2_pad_size
        - dp_packet_tail
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:537,12'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:537,12'
              BranchSideFuncs:
                - dp_packet_tail
                - dp_packet_inner_l4
                - dp_packet_l2_pad_size
            - BranchSide:      'lib/dp-packet.h:538,44'
              BranchSideFuncs:
                - dp_packet_tail
                - dp_packet_inner_l4
                - dp_packet_l2_pad_size
      Callsites:
        - Src:             'lib/dp-packet.h:538,29'
          Dst:             dp_packet_tail
        - Src:             'lib/dp-packet.h:539,29'
          Dst:             dp_packet_inner_l4
        - Src:             'lib/dp-packet.h:540,14'
          Dst:             dp_packet_l2_pad_size
    - functionName:    dp_packet_l4
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 474
      functionLinenumberEnd: 476
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    17
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:475,12'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:475,12'
              BranchSideFuncs:
                - dp_packet_data
            - BranchSide:      'lib/dp-packet.h:476,38'
              BranchSideFuncs:
                - dp_packet_data
      Callsites:
        - Src:             'lib/dp-packet.h:476,23'
          Dst:             dp_packet_data
    - functionName:    dp_packet_l4_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 501
      functionLinenumberEnd: 504
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_l2_pad_size
        - dp_packet_l4
        - dp_packet_tail
      functionUses:    9
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:502,12'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:502,12'
              BranchSideFuncs:
                - dp_packet_tail
                - dp_packet_l4
                - dp_packet_l2_pad_size
            - BranchSide:      'lib/dp-packet.h:503,40'
              BranchSideFuncs:
                - dp_packet_tail
                - dp_packet_l4
                - dp_packet_l2_pad_size
      Callsites:
        - Src:             'lib/dp-packet.h:503,25'
          Dst:             dp_packet_tail
        - Src:             'lib/dp-packet.h:503,59'
          Dst:             dp_packet_l4
        - Src:             'lib/dp-packet.h:504,11'
          Dst:             dp_packet_l2_pad_size
    - functionName:    put_16aligned_be32
      functionSourceFile: '/src/openvswitch/lib/unaligned.h'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - x
        - value
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    21
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_l4_checksum_set_good
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1346
      functionLinenumberEnd: 1349
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_l4_checksum_set_good
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1259
      functionLinenumberEnd: 1262
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    packet_udp_complete_csum
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2040
      functionLinenumberEnd: 2086
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - p
        - inner
      BBCount:         18
      ICount:          148
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - csum_continue
        - csum_finish
        - dp_packet_inner_l3
        - dp_packet_inner_l4
        - dp_packet_inner_l4_checksum_set_good
        - dp_packet_inner_l4_size
        - dp_packet_l3
        - dp_packet_l4
        - dp_packet_l4_checksum_set_good
        - dp_packet_l4_size
        - htons
        - packet_csum_pseudoheader
        - packet_csum_upperlayer6
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/packets.c:2045,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:2046,34'
              BranchSideFuncs:
                - dp_packet_inner_l4
                - dp_packet_inner_l3
                - dp_packet_inner_l4_size
                - dp_packet_l4_checksum_set_good
                - dp_packet_inner_l4_checksum_set_good
                - packet_csum_upperlayer6
                - htons
                - packet_csum_pseudoheader
                - csum_continue
                - csum_finish
            - BranchSide:      'lib/packets.c:2050,28'
              BranchSideFuncs:
                - dp_packet_l4
                - dp_packet_l3
                - dp_packet_l4_size
                - dp_packet_l4_checksum_set_good
                - dp_packet_inner_l4_checksum_set_good
                - packet_csum_upperlayer6
                - htons
                - packet_csum_pseudoheader
                - csum_continue
                - csum_finish
        - Branch String:   'lib/packets.c:2059,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:2060,9'
              BranchSideFuncs:
                - packet_csum_upperlayer6
                - htons
                - dp_packet_l4_checksum_set_good
                - dp_packet_inner_l4_checksum_set_good
                - packet_csum_pseudoheader
                - csum_continue
                - csum_finish
            - BranchSide:      'lib/packets.c:2063,5'
              BranchSideFuncs:
                - packet_csum_upperlayer6
                - htons
                - dp_packet_l4_checksum_set_good
                - dp_packet_inner_l4_checksum_set_good
                - packet_csum_pseudoheader
                - csum_continue
                - csum_finish
        - Branch String:   'lib/packets.c:2064,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:2065,32'
              BranchSideFuncs:
                - packet_csum_pseudoheader
                - csum_continue
                - csum_finish
                - htons
                - dp_packet_l4_checksum_set_good
                - dp_packet_inner_l4_checksum_set_good
            - BranchSide:      'lib/packets.c:2070,45'
              BranchSideFuncs:
                - packet_csum_upperlayer6
                - htons
                - dp_packet_l4_checksum_set_good
                - dp_packet_inner_l4_checksum_set_good
        - Branch String:   'lib/packets.c:2076,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:2076,15'
              BranchSideFuncs:
                - dp_packet_l4_checksum_set_good
                - dp_packet_inner_l4_checksum_set_good
            - BranchSide:      'lib/packets.c:2077,25'
              BranchSideFuncs:
                - htons
                - dp_packet_l4_checksum_set_good
                - dp_packet_inner_l4_checksum_set_good
        - Branch String:   'lib/packets.c:2081,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:2082,46'
              BranchSideFuncs:
                - dp_packet_inner_l4_checksum_set_good
            - BranchSide:      'lib/packets.c:2084,40'
              BranchSideFuncs:
                - dp_packet_l4_checksum_set_good
      Callsites:
        - Src:             'lib/packets.c:2046,15'
          Dst:             dp_packet_inner_l4
        - Src:             'lib/packets.c:2047,18'
          Dst:             dp_packet_inner_l3
        - Src:             'lib/packets.c:2048,18'
          Dst:             dp_packet_inner_l4_size
        - Src:             'lib/packets.c:2050,15'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:2051,18'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:2052,18'
          Dst:             dp_packet_l4_size
        - Src:             'lib/packets.c:2067,51'
          Dst:             packet_csum_pseudoheader
        - Src:             'lib/packets.c:2067,37'
          Dst:             csum_continue
        - Src:             'lib/packets.c:2067,25'
          Dst:             csum_finish
        - Src:             'lib/packets.c:2072,25'
          Dst:             packet_csum_upperlayer6
        - Src:             'lib/packets.c:2077,25'
          Dst:             htons
        - Src:             'lib/packets.c:2082,9'
          Dst:             dp_packet_inner_l4_checksum_set_good
        - Src:             'lib/packets.c:2084,9'
          Dst:             dp_packet_l4_checksum_set_good
    - functionName:    dp_packet_inner_l3
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:511,12'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:511,12'
              BranchSideFuncs:
                - dp_packet_data
            - BranchSide:      'lib/dp-packet.h:512,38'
              BranchSideFuncs:
                - dp_packet_data
      Callsites:
        - Src:             'lib/dp-packet.h:512,23'
          Dst:             dp_packet_data
    - functionName:    dp_packet_l3
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 462
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    19
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:461,12'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:461,12'
              BranchSideFuncs:
                - dp_packet_data
            - BranchSide:      'lib/dp-packet.h:462,38'
              BranchSideFuncs:
                - dp_packet_data
      Callsites:
        - Src:             'lib/dp-packet.h:462,23'
          Dst:             dp_packet_data
    - functionName:    packet_csum_pseudoheader
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1921
      functionLinenumberEnd: 1930
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ip
      BBCount:         3
      ICount:          55
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - csum_add16
        - csum_add32
        - get_16aligned_be32
        - htons
        - ntohs
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1924,35'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:1924,15'
          Dst:             csum_add32
        - Src:             'lib/packets.c:1925,35'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:1925,15'
          Dst:             csum_add32
        - Src:             'lib/packets.c:1926,35'
          Dst:             htons
        - Src:             'lib/packets.c:1926,15'
          Dst:             csum_add16
        - Src:             'lib/packets.c:1927,41'
          Dst:             ntohs
        - Src:             'lib/packets.c:1927,35'
          Dst:             htons
        - Src:             'lib/packets.c:1927,15'
          Dst:             csum_add16
    - functionName:    packet_csum_upperlayer6
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1954
      functionLinenumberEnd: 1964
      functionDepth:   0
      returnType:      short
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - short
      constantsTouched: []
      argNames:
        - ip6
        - data
        - l4_protocol
        - l4_size
      BBCount:         3
      ICount:          55
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - csum_add16
        - csum_continue
        - csum_finish
        - htons
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1957,15'
          Dst:             csum_continue
        - Src:             'lib/packets.c:1958,15'
          Dst:             csum_continue
        - Src:             'lib/packets.c:1959,35'
          Dst:             htons
        - Src:             'lib/packets.c:1959,15'
          Dst:             csum_add16
        - Src:             'lib/packets.c:1960,35'
          Dst:             htons
        - Src:             'lib/packets.c:1960,15'
          Dst:             csum_add16
        - Src:             'lib/packets.c:1962,15'
          Dst:             csum_continue
        - Src:             'lib/packets.c:1964,12'
          Dst:             csum_finish
    - functionName:    csum_add16
      functionSourceFile: '/src/openvswitch/lib/csum.h'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - short
      constantsTouched: []
      argNames:
        - partial
        - new
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_16aligned_be32
      functionSourceFile: '/src/openvswitch/lib/unaligned.h'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - x
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    csum_add32
      functionSourceFile: '/src/openvswitch/lib/csum.h'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - partial
        - new
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    packet_tcp_complete_csum
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1998
      functionLinenumberEnd: 2034
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - p
        - inner
      BBCount:         12
      ICount:          118
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - csum_continue
        - csum_finish
        - dp_packet_inner_l3
        - dp_packet_inner_l4
        - dp_packet_inner_l4_checksum_set_good
        - dp_packet_inner_l4_size
        - dp_packet_l3
        - dp_packet_l4
        - dp_packet_l4_checksum_set_good
        - dp_packet_l4_size
        - packet_csum_pseudoheader
        - packet_csum_upperlayer6
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/packets.c:2003,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:2004,34'
              BranchSideFuncs:
                - dp_packet_inner_l4
                - dp_packet_inner_l3
                - dp_packet_inner_l4_size
                - packet_csum_upperlayer6
                - dp_packet_l4_checksum_set_good
                - dp_packet_inner_l4_checksum_set_good
                - packet_csum_pseudoheader
                - csum_continue
                - csum_finish
            - BranchSide:      'lib/packets.c:2008,28'
              BranchSideFuncs:
                - dp_packet_l4
                - dp_packet_l3
                - dp_packet_l4_size
                - packet_csum_upperlayer6
                - dp_packet_l4_checksum_set_good
                - dp_packet_inner_l4_checksum_set_good
                - packet_csum_pseudoheader
                - csum_continue
                - csum_finish
        - Branch String:   'lib/packets.c:2017,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:2018,32'
              BranchSideFuncs:
                - packet_csum_pseudoheader
                - csum_continue
                - csum_finish
                - dp_packet_l4_checksum_set_good
                - dp_packet_inner_l4_checksum_set_good
            - BranchSide:      'lib/packets.c:2023,45'
              BranchSideFuncs:
                - packet_csum_upperlayer6
                - dp_packet_l4_checksum_set_good
                - dp_packet_inner_l4_checksum_set_good
        - Branch String:   'lib/packets.c:2029,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:2030,46'
              BranchSideFuncs:
                - dp_packet_inner_l4_checksum_set_good
            - BranchSide:      'lib/packets.c:2032,40'
              BranchSideFuncs:
                - dp_packet_l4_checksum_set_good
      Callsites:
        - Src:             'lib/packets.c:2004,15'
          Dst:             dp_packet_inner_l4
        - Src:             'lib/packets.c:2005,18'
          Dst:             dp_packet_inner_l3
        - Src:             'lib/packets.c:2006,18'
          Dst:             dp_packet_inner_l4_size
        - Src:             'lib/packets.c:2008,15'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:2009,18'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:2010,18'
          Dst:             dp_packet_l4_size
        - Src:             'lib/packets.c:2020,51'
          Dst:             packet_csum_pseudoheader
        - Src:             'lib/packets.c:2020,37'
          Dst:             csum_continue
        - Src:             'lib/packets.c:2020,25'
          Dst:             csum_finish
        - Src:             'lib/packets.c:2025,25'
          Dst:             packet_csum_upperlayer6
        - Src:             'lib/packets.c:2030,9'
          Dst:             dp_packet_inner_l4_checksum_set_good
        - Src:             'lib/packets.c:2032,9'
          Dst:             dp_packet_l4_checksum_set_good
    - functionName:    IP_ECN_set_ce
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1970
      functionLinenumberEnd: 1992
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - pkt
        - is_ipv6
      BBCount:         12
      ICount:          99
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - dp_packet_ip_checksum_set_partial
        - dp_packet_ip_checksum_valid
        - dp_packet_l3
        - get_16aligned_be32
        - htonl
        - htons
        - put_16aligned_be32
        - recalc_csum16
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:1971,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1972,48'
              BranchSideFuncs:
                - dp_packet_l3
                - get_16aligned_be32
                - htonl
                - put_16aligned_be32
            - BranchSide:      'lib/packets.c:1977,45'
              BranchSideFuncs:
                - dp_packet_l3
                - dp_packet_ip_checksum_valid
                - htons
                - htons
                - recalc_csum16
                - dp_packet_ip_checksum_set_partial
        - Branch String:   'lib/packets.c:1982,17'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1983,51'
              BranchSideFuncs:
                - dp_packet_ip_checksum_set_partial
            - BranchSide:      'lib/packets.c:1985,45'
              BranchSideFuncs:
                - htons
                - htons
                - recalc_csum16
      Callsites:
        - Src:             'lib/packets.c:1972,35'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1974,33'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:1975,33'
          Dst:             htonl
        - Src:             'lib/packets.c:1974,9'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:1977,32'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1982,17'
          Dst:             dp_packet_ip_checksum_valid
        - Src:             'lib/packets.c:1983,17'
          Dst:             dp_packet_ip_checksum_set_partial
        - Src:             'lib/packets.c:1985,58'
          Dst:             htons
        - Src:             'lib/packets.c:1986,45'
          Dst:             htons
        - Src:             'lib/packets.c:1985,31'
          Dst:             recalc_csum16
    - functionName:    dp_packet_ip_checksum_valid
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1146
      functionLinenumberEnd: 1147
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_ip_checksum_set_partial
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1128
      functionLinenumberEnd: 1130
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    packet_put_ra_prefix_opt
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1896
      functionLinenumberEnd: 1917
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - char
        - char
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
        - plen
        - la_flags
        - valid_lifetime
        - preferred_lifetime
        - prefix
      BBCount:         3
      ICount:          105
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - csum_continue
        - csum_finish
        - dp_packet_l3
        - dp_packet_l4
        - dp_packet_l4_size
        - dp_packet_put_uninit
        - htons
        - packet_csum_pseudoheader6
        - put_16aligned_be32
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1897,27'
          Dst:             dp_packet_l4_size
        - Src:             'lib/packets.c:1898,40'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1899,20'
          Dst:             htons
        - Src:             'lib/packets.c:1902,9'
          Dst:             dp_packet_put_uninit
        - Src:             'lib/packets.c:1907,5'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:1908,5'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:1909,5'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:1912,29'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1914,52'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1914,26'
          Dst:             packet_csum_pseudoheader6
        - Src:             'lib/packets.c:1915,41'
          Dst:             csum_continue
        - Src:             'lib/packets.c:1915,29'
          Dst:             csum_finish
    - functionName:    packet_csum_pseudoheader6
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1936
      functionLinenumberEnd: 1944
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ip6
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - csum_add16
        - csum_continue
        - htons
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1939,15'
          Dst:             csum_continue
        - Src:             'lib/packets.c:1940,15'
          Dst:             csum_continue
        - Src:             'lib/packets.c:1941,35'
          Dst:             htons
        - Src:             'lib/packets.c:1941,15'
          Dst:             csum_add16
        - Src:             'lib/packets.c:1942,15'
          Dst:             csum_add16
    - functionName:    compose_nd_ra
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1849
      functionLinenumberEnd: 1887
      functionDepth:   0
      returnType:      void
      argCount:        11
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
        - char
        - short
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - b
        - eth_src
        - eth_dst
        - ipv6_src
        - ipv6_dst
        - cur_hop_limit
        - mo_flags
        - router_lt
        - reachable_time
        - retrans_timer
        - mtu
      BBCount:         6
      ICount:          182
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - compose_ipv6
        - csum_continue
        - csum_finish
        - dp_packet_l3
        - eth_compose
        - htonl
        - packet_csum_pseudoheader6
        - put_16aligned_be32
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:1873,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1873,9'
              BranchSideFuncs:
                - htonl
                - put_16aligned_be32
                - dp_packet_l3
                - packet_csum_pseudoheader6
                - csum_continue
                - csum_finish
            - BranchSide:      'lib/packets.c:1876,41'
              BranchSideFuncs:
                - htonl
                - put_16aligned_be32
                - dp_packet_l3
                - packet_csum_pseudoheader6
                - csum_continue
                - csum_finish
      Callsites:
        - Src:             'lib/packets.c:1855,5'
          Dst:             eth_compose
        - Src:             'lib/packets.c:1857,29'
          Dst:             compose_ipv6
        - Src:             'lib/packets.c:1880,43'
          Dst:             htonl
        - Src:             'lib/packets.c:1880,9'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:1884,52'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1884,26'
          Dst:             packet_csum_pseudoheader6
        - Src:             'lib/packets.c:1885,41'
          Dst:             csum_continue
        - Src:             'lib/packets.c:1885,29'
          Dst:             csum_finish
    - functionName:    eth_compose
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1097
      functionLinenumberEnd: 1118
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - short
        - size_t
      constantsTouched: []
      argNames:
        - b
        - eth_dst
        - eth_src
        - eth_type
        - size
      BBCount:         3
      ICount:          72
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_clear
        - dp_packet_prealloc_tailroom
        - dp_packet_put_uninit
        - dp_packet_put_zeros
        - dp_packet_reserve
        - dp_packet_set_l3
        - htonl
        - htons
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1102,5'
          Dst:             dp_packet_clear
        - Src:             'lib/packets.c:1106,5'
          Dst:             dp_packet_prealloc_tailroom
        - Src:             'lib/packets.c:1107,5'
          Dst:             dp_packet_reserve
        - Src:             'lib/packets.c:1108,11'
          Dst:             dp_packet_put_uninit
        - Src:             'lib/packets.c:1109,12'
          Dst:             dp_packet_put_zeros
        - Src:             'lib/packets.c:1113,21'
          Dst:             htons
        - Src:             'lib/packets.c:1115,22'
          Dst:             htonl
        - Src:             'lib/packets.c:1116,5'
          Dst:             dp_packet_set_l3
    - functionName:    compose_ipv6
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1759
      functionLinenumberEnd: 1770
      functionDepth:   0
      returnType:      'N/A'
      argCount:        8
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
        - char
        - int
        - char
        - int
      constantsTouched: []
      argNames:
        - packet
        - proto
        - src
        - dst
        - key_tc
        - key_fl
        - key_hl
        - size
      BBCount:         3
      ICount:          73
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_l3
        - dp_packet_put_zeros
        - dp_packet_set_l4
        - htons
        - packet_set_ipv6
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1763,10'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1766,20'
          Dst:             htons
        - Src:             'lib/packets.c:1767,12'
          Dst:             dp_packet_put_zeros
        - Src:             'lib/packets.c:1768,5'
          Dst:             dp_packet_set_l4
        - Src:             'lib/packets.c:1769,5'
          Dst:             packet_set_ipv6
    - functionName:    dp_packet_set_l4
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
        - l4
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:483,17'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:483,31'
              BranchSideFuncs:
                - dp_packet_data
            - BranchSide:      'lib/dp-packet.h:483,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/dp-packet.h:483,45'
          Dst:             dp_packet_data
    - functionName:    packet_set_ipv6
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1363
      functionLinenumberEnd: 1384
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
        - int
        - char
      constantsTouched: []
      argNames:
        - packet
        - src
        - dst
        - key_tc
        - key_fl
        - key_hl
      BBCount:         12
      ICount:          118
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - dp_packet_l3
        - memcmp
        - packet_rh_present
        - packet_set_ipv6_addr
        - packet_set_ipv6_flow_label
        - packet_set_ipv6_tc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/packets.c:1371,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1372,30'
              BranchSideFuncs:
                - packet_set_ipv6_addr
                - memcmp
                - packet_set_ipv6_tc
                - packet_set_ipv6_flow_label
                - packet_set_ipv6_addr
            - BranchSide:      'lib/packets.c:1376,17'
              BranchSideFuncs:
                - memcmp
                - packet_set_ipv6_tc
                - packet_set_ipv6_flow_label
                - packet_set_ipv6_addr
        - Branch String:   'lib/packets.c:1376,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1376,9'
              BranchSideFuncs:
                - packet_set_ipv6_addr
                - packet_set_ipv6_tc
                - packet_set_ipv6_flow_label
            - BranchSide:      'lib/packets.c:1377,30'
              BranchSideFuncs:
                - packet_set_ipv6_addr
                - packet_set_ipv6_tc
                - packet_set_ipv6_flow_label
        - Branch String:   'lib/packets.c:1378,42'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1377,9'
              BranchSideFuncs:
                - packet_set_ipv6_addr
                - packet_set_ipv6_tc
                - packet_set_ipv6_flow_label
            - BranchSide:      'lib/packets.c:1378,45'
              BranchSideFuncs:
                - packet_set_ipv6_addr
                - packet_set_ipv6_tc
                - packet_set_ipv6_flow_label
      Callsites:
        - Src:             'lib/packets.c:1364,40'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1369,18'
          Dst:             packet_rh_present
        - Src:             'lib/packets.c:1371,9'
          Dst:             memcmp
        - Src:             'lib/packets.c:1372,9'
          Dst:             packet_set_ipv6_addr
        - Src:             'lib/packets.c:1376,9'
          Dst:             memcmp
        - Src:             'lib/packets.c:1377,9'
          Dst:             packet_set_ipv6_addr
        - Src:             'lib/packets.c:1381,5'
          Dst:             packet_set_ipv6_tc
        - Src:             'lib/packets.c:1382,5'
          Dst:             packet_set_ipv6_flow_label
    - functionName:    packet_rh_present
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1166
      functionLinenumberEnd: 1243
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - packet
        - nexthdr
        - first_frag
      BBCount:         37
      ICount:          287
      EdgeCount:       50
      CyclomaticComplexity: 15
      functionsReached:
        - dp_packet_l3
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/packets.c:1173,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1174,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1176,10'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:1183,17'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1183,22'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1198,13'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:1184,17'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1184,22'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1198,13'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:1185,17'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1185,22'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1198,13'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:1186,17'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1186,22'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1198,13'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:1182,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1190,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1198,13'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:1198,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1199,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1202,14'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:1202,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1207,63'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1211,21'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:1211,20'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1213,19'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1219,21'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:1215,67'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1215,14'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1216,29'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:1219,20'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1220,62'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1229,63'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:1222,17'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1223,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1226,24'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:1235,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1236,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1238,22'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/packets.c:1170,21'
          Dst:             dp_packet_l3
    - functionName:    packet_set_ipv6_addr
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1286
      functionLinenumberEnd: 1292
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - packet
        - proto
        - addr
        - new_addr
        - recalculate_csum
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - packet_update_csum128
        - pkt_metadata_init_conn
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/packets.c:1287,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1287,9'
              BranchSideFuncs:
                - packet_update_csum128
                - pkt_metadata_init_conn
            - BranchSide:      'lib/packets.c:1288,31'
              BranchSideFuncs:
                - packet_update_csum128
                - pkt_metadata_init_conn
      Callsites:
        - Src:             'lib/packets.c:1288,9'
          Dst:             packet_update_csum128
        - Src:             'lib/packets.c:1291,5'
          Dst:             pkt_metadata_init_conn
    - functionName:    packet_set_ipv6_tc
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1304
      functionLinenumberEnd: 1308
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - flow_label
        - tc
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_16aligned_be32
        - htonl
        - put_16aligned_be32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1305,26'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:1306,39'
          Dst:             htonl
        - Src:             'lib/packets.c:1306,60'
          Dst:             htonl
        - Src:             'lib/packets.c:1307,5'
          Dst:             put_16aligned_be32
    - functionName:    packet_set_ipv6_flow_label
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1296
      functionLinenumberEnd: 1300
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - flow_label
        - flow_key
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_16aligned_be32
        - htonl
        - put_16aligned_be32
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1297,26'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:1298,39'
          Dst:             htonl
        - Src:             'lib/packets.c:1299,5'
          Dst:             put_16aligned_be32
    - functionName:    packet_update_csum128
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1249
      functionLinenumberEnd: 1279
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - packet
        - proto
        - addr
        - new_addr
      BBCount:         32
      ICount:          181
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - dp_packet_l4
        - dp_packet_l4_checksum_set_partial
        - dp_packet_l4_checksum_valid
        - dp_packet_l4_size
        - htons
        - recalc_csum128
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/packets.c:1252,30'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1252,33'
              BranchSideFuncs:
                - dp_packet_l4
                - recalc_csum128
                - dp_packet_l4_checksum_valid
                - dp_packet_l4
                - recalc_csum128
                - htons
                - dp_packet_l4_checksum_set_partial
                - dp_packet_l4_checksum_valid
                - dp_packet_l4
                - recalc_csum128
                - dp_packet_l4_checksum_set_partial
            - BranchSide:      'lib/packets.c:1260,16'
              BranchSideFuncs:
                - dp_packet_l4
                - recalc_csum128
                - dp_packet_l4_checksum_valid
                - dp_packet_l4
                - recalc_csum128
                - htons
                - dp_packet_l4_checksum_set_partial
        - Branch String:   'lib/packets.c:1252,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1253,41'
              BranchSideFuncs:
                - dp_packet_l4_checksum_valid
                - dp_packet_l4
                - recalc_csum128
                - dp_packet_l4_checksum_set_partial
            - BranchSide:      'lib/packets.c:1260,16'
              BranchSideFuncs:
                - dp_packet_l4
                - recalc_csum128
                - dp_packet_l4_checksum_valid
                - dp_packet_l4
                - recalc_csum128
                - htons
                - dp_packet_l4_checksum_set_partial
        - Branch String:   'lib/packets.c:1253,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1254,47'
              BranchSideFuncs:
                - dp_packet_l4_checksum_set_partial
            - BranchSide:      'lib/packets.c:1256,50'
              BranchSideFuncs:
                - dp_packet_l4
                - recalc_csum128
        - Branch String:   'lib/packets.c:1260,37'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1260,40'
              BranchSideFuncs:
                - dp_packet_l4
                - recalc_csum128
                - dp_packet_l4_checksum_valid
                - dp_packet_l4
                - recalc_csum128
                - htons
                - dp_packet_l4_checksum_set_partial
            - BranchSide:      'lib/packets.c:1273,16'
              BranchSideFuncs:
                - dp_packet_l4
                - recalc_csum128
        - Branch String:   'lib/packets.c:1260,16'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1261,41'
              BranchSideFuncs:
                - dp_packet_l4_checksum_valid
                - dp_packet_l4
                - recalc_csum128
                - htons
                - dp_packet_l4_checksum_set_partial
            - BranchSide:      'lib/packets.c:1273,16'
              BranchSideFuncs:
                - dp_packet_l4
                - recalc_csum128
        - Branch String:   'lib/packets.c:1261,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1262,47'
              BranchSideFuncs:
                - dp_packet_l4_checksum_set_partial
            - BranchSide:      'lib/packets.c:1264,50'
              BranchSideFuncs:
                - dp_packet_l4
                - recalc_csum128
                - htons
        - Branch String:   'lib/packets.c:1268,21'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1269,36'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1271,13'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/packets.c:1250,22'
          Dst:             dp_packet_l4_size
        - Src:             'lib/packets.c:1253,13'
          Dst:             dp_packet_l4_checksum_valid
        - Src:             'lib/packets.c:1254,13'
          Dst:             dp_packet_l4_checksum_set_partial
        - Src:             'lib/packets.c:1256,37'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1258,28'
          Dst:             recalc_csum128
        - Src:             'lib/packets.c:1261,13'
          Dst:             dp_packet_l4_checksum_valid
        - Src:             'lib/packets.c:1262,13'
          Dst:             dp_packet_l4_checksum_set_partial
        - Src:             'lib/packets.c:1264,37'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1267,32'
          Dst:             recalc_csum128
        - Src:             'lib/packets.c:1269,36'
          Dst:             htons
        - Src:             'lib/packets.c:1275,37'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1277,29'
          Dst:             recalc_csum128
    - functionName:    pkt_metadata_init_conn
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - md
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_l4_checksum_valid
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1309
      functionLinenumberEnd: 1310
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_l4_checksum_set_partial
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1293
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_clear
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 358
      functionLinenumberEnd: 363
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_base
        - dp_packet_reset_offload
        - dp_packet_reset_offsets
        - dp_packet_set_data
        - dp_packet_set_size
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:359,27'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.h:359,5'
          Dst:             dp_packet_set_data
        - Src:             'lib/dp-packet.h:360,5'
          Dst:             dp_packet_set_size
        - Src:             'lib/dp-packet.h:361,5'
          Dst:             dp_packet_reset_offsets
        - Src:             'lib/dp-packet.h:362,5'
          Dst:             dp_packet_reset_offload
    - functionName:    dp_packet_set_l3
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 470
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
        - l3
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:469,17'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:469,31'
              BranchSideFuncs:
                - dp_packet_data
            - BranchSide:      'lib/dp-packet.h:469,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/dp-packet.h:469,45'
          Dst:             dp_packet_data
    - functionName:    dp_packet_reset_offsets
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 427
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_reset_outer_offsets
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:424,5'
          Dst:             dp_packet_reset_outer_offsets
    - functionName:    dp_packet_reset_offload
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1024
      functionLinenumberEnd: 1027
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    compose_nd_na
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1813
      functionLinenumberEnd: 1836
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - b
        - eth_src
        - eth_dst
        - ipv6_src
        - ipv6_dst
        - rso_flags
      BBCount:         3
      ICount:          109
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - compose_ipv6
        - csum_continue
        - csum_finish
        - dp_packet_l3
        - eth_compose
        - packet_csum_pseudoheader6
        - packet_set_nd
        - put_16aligned_be32
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1818,5'
          Dst:             eth_compose
        - Src:             'lib/packets.c:1819,10'
          Dst:             compose_ipv6
        - Src:             'lib/packets.c:1824,5'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:1830,5'
          Dst:             packet_set_nd
        - Src:             'lib/packets.c:1833,43'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1833,17'
          Dst:             packet_csum_pseudoheader6
        - Src:             'lib/packets.c:1834,41'
          Dst:             csum_continue
        - Src:             'lib/packets.c:1834,29'
          Dst:             csum_finish
    - functionName:    packet_set_nd
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1573
      functionLinenumberEnd: 1617
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - packet
        - target
        - sll
        - tll
      BBCount:         32
      ICount:          277
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - dp_packet_l4
        - dp_packet_l4_size
        - eth_addr_equals
        - memcmp
        - packet_set_ipv6_addr
        - recalc_csum48
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/packets.c:1578,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1579,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1582,23'
              BranchSideFuncs:
                - dp_packet_l4
                - memcmp
                - eth_addr_equals
                - recalc_csum48
                - eth_addr_equals
                - recalc_csum48
                - packet_set_ipv6_addr
        - Branch String:   'lib/packets.c:1586,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1587,30'
              BranchSideFuncs:
                - packet_set_ipv6_addr
                - eth_addr_equals
                - recalc_csum48
                - eth_addr_equals
                - recalc_csum48
            - BranchSide:      'lib/packets.c:1591,5'
              BranchSideFuncs:
                - eth_addr_equals
                - recalc_csum48
                - eth_addr_equals
                - recalc_csum48
        - Branch String:   'lib/packets.c:1591,43'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1591,46'
              BranchSideFuncs:
                - eth_addr_equals
                - recalc_csum48
                - eth_addr_equals
                - recalc_csum48
            - BranchSide:      'lib/packets.c:1591,5'
              BranchSideFuncs:
                - eth_addr_equals
                - recalc_csum48
                - eth_addr_equals
                - recalc_csum48
        - Branch String:   'lib/packets.c:1591,5'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1591,5'
              BranchSideFuncs:
                - eth_addr_equals
                - recalc_csum48
                - eth_addr_equals
                - recalc_csum48
            - BranchSide:      'lib/packets.c:1592,13'
              BranchSideFuncs:
                - eth_addr_equals
                - recalc_csum48
                - eth_addr_equals
                - recalc_csum48
        - Branch String:   'lib/packets.c:1592,49'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1592,52'
              BranchSideFuncs:
                - eth_addr_equals
                - recalc_csum48
                - eth_addr_equals
                - recalc_csum48
            - BranchSide:      'lib/packets.c:1602,20'
              BranchSideFuncs:
                - eth_addr_equals
                - recalc_csum48
                - eth_addr_equals
                - recalc_csum48
        - Branch String:   'lib/packets.c:1592,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1593,34'
              BranchSideFuncs:
                - eth_addr_equals
                - recalc_csum48
            - BranchSide:      'lib/packets.c:1602,20'
              BranchSideFuncs:
                - eth_addr_equals
                - recalc_csum48
                - eth_addr_equals
                - recalc_csum48
        - Branch String:   'lib/packets.c:1593,17'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1594,36'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1601,13'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:1603,17'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1604,36'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1611,13'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/packets.c:1576,24'
          Dst:             dp_packet_l4_size
        - Src:             'lib/packets.c:1582,10'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1586,9'
          Dst:             memcmp
        - Src:             'lib/packets.c:1587,9'
          Dst:             packet_set_ipv6_addr
        - Src:             'lib/packets.c:1593,18'
          Dst:             eth_addr_equals
        - Src:             'lib/packets.c:1596,25'
          Dst:             recalc_csum48
        - Src:             'lib/packets.c:1603,18'
          Dst:             eth_addr_equals
        - Src:             'lib/packets.c:1606,25'
          Dst:             recalc_csum48
    - functionName:    eth_addr_equals
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 273
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         3
      ICount:          39
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - eth_addr_compare_3way
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.h:273,13'
          Dst:             eth_addr_compare_3way
    - functionName:    compose_nd_ns
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1777
      functionLinenumberEnd: 1805
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
        - eth_src
        - ipv6_src
        - ipv6_dst
      BBCount:         3
      ICount:          105
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - compose_ipv6
        - csum_continue
        - csum_finish
        - dp_packet_l3
        - eth_compose
        - htonl
        - in6_addr_solicited_node
        - ipv6_multicast_to_ethernet
        - packet_csum_pseudoheader6
        - packet_set_nd
        - put_16aligned_be32
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1784,5'
          Dst:             in6_addr_solicited_node
        - Src:             'lib/packets.c:1785,5'
          Dst:             ipv6_multicast_to_ethernet
        - Src:             'lib/packets.c:1787,5'
          Dst:             eth_compose
        - Src:             'lib/packets.c:1788,10'
          Dst:             compose_ipv6
        - Src:             'lib/packets.c:1793,40'
          Dst:             htonl
        - Src:             'lib/packets.c:1793,5'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:1799,5'
          Dst:             packet_set_nd
        - Src:             'lib/packets.c:1802,43'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1802,17'
          Dst:             packet_csum_pseudoheader6
        - Src:             'lib/packets.c:1804,9'
          Dst:             csum_continue
        - Src:             'lib/packets.c:1803,29'
          Dst:             csum_finish
    - functionName:    in6_addr_solicited_node
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 597
      functionLinenumberEnd: 605
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - addr
        - ip6
      BBCount:         3
      ICount:          43
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htons
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:601,22'
          Dst:             htons
        - Src:             'lib/packets.c:602,22'
          Dst:             htons
        - Src:             'lib/packets.c:603,22'
          Dst:             htons
    - functionName:    ipv6_multicast_to_ethernet
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 659
      functionLinenumberEnd: 666
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - eth
        - ip6
      BBCount:         1
      ICount:          50
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    compose_arp__
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1734
      functionLinenumberEnd: 1751
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         3
      ICount:          55
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_clear
        - dp_packet_prealloc_tailroom
        - dp_packet_put_zeros
        - dp_packet_reserve
        - dp_packet_set_l3
        - htonl
        - htons
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:1735,5'
          Dst:             dp_packet_clear
        - Src:             'lib/packets.c:1736,5'
          Dst:             dp_packet_prealloc_tailroom
        - Src:             'lib/packets.c:1737,5'
          Dst:             dp_packet_reserve
        - Src:             'lib/packets.c:1739,30'
          Dst:             dp_packet_put_zeros
        - Src:             'lib/packets.c:1740,21'
          Dst:             htons
        - Src:             'lib/packets.c:1742,34'
          Dst:             dp_packet_put_zeros
        - Src:             'lib/packets.c:1743,19'
          Dst:             htons
        - Src:             'lib/packets.c:1744,19'
          Dst:             htons
        - Src:             'lib/packets.c:1748,5'
          Dst:             dp_packet_set_l3
        - Src:             'lib/packets.c:1750,22'
          Dst:             htonl
    - functionName:    compose_arp
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1713
      functionLinenumberEnd: 1726
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - 'N/A'
        - bool
        - int
        - int
      constantsTouched: []
      argNames:
        - b
        - arp_op
        - arp_sha
        - arp_tha
        - broadcast
        - arp_spa
        - arp_tpa
      BBCount:         6
      ICount:          90
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - compose_arp__
        - dp_packet_eth
        - dp_packet_l3
        - htons
        - put_16aligned_be32
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:1717,20'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1717,32'
              BranchSideFuncs:
                - dp_packet_l3
                - htons
                - put_16aligned_be32
                - put_16aligned_be32
            - BranchSide:      'lib/packets.c:1717,53'
              BranchSideFuncs:
                - dp_packet_l3
                - htons
                - put_16aligned_be32
                - put_16aligned_be32
      Callsites:
        - Src:             'lib/packets.c:1714,5'
          Dst:             compose_arp__
        - Src:             'lib/packets.c:1716,30'
          Dst:             dp_packet_eth
        - Src:             'lib/packets.c:1720,34'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1721,18'
          Dst:             htons
        - Src:             'lib/packets.c:1724,5'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:1725,5'
          Dst:             put_16aligned_be32
    - functionName:    dp_packet_eth
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 404
      functionLinenumberEnd: 406
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         9
      ICount:          40
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dp_packet_data
        - dp_packet_is_eth
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:405,33'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:405,36'
              BranchSideFuncs:
                - dp_packet_data
            - BranchSide:      'lib/dp-packet.h:405,12'
              BranchSideFuncs: []
        - Branch String:   'lib/dp-packet.h:405,12'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:405,12'
              BranchSideFuncs:
                - dp_packet_data
            - BranchSide:      'lib/dp-packet.h:406,30'
              BranchSideFuncs:
                - dp_packet_data
      Callsites:
        - Src:             'lib/dp-packet.h:405,13'
          Dst:             dp_packet_is_eth
        - Src:             'lib/dp-packet.h:406,15'
          Dst:             dp_packet_data
    - functionName:    dp_packet_is_eth
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 396
      functionLinenumberEnd: 397
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htonl
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:397,30'
          Dst:             htonl
    - functionName:    packet_format_tcp_flags
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1657
      functionLinenumberEnd: 1699
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - s
        - tcp_flags
      BBCount:         41
      ICount:          219
      EdgeCount:       54
      CyclomaticComplexity: 15
      functionsReached:
        - ds_put_char
        - ds_put_cstr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:1658,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1659,21'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_char.4234
                - ds_put_char.4234
                - ds_put_char.4234
                - ds_put_char.4234
                - ds_put_char.4234
                - ds_put_char.4234
            - BranchSide:      'lib/packets.c:1663,9'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_char.4234
                - ds_put_char.4234
                - ds_put_char.4234
                - ds_put_char.4234
                - ds_put_char.4234
                - ds_put_char.4234
        - Branch String:   'lib/packets.c:1663,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1664,21'
              BranchSideFuncs:
                - ds_put_char.4234
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_char.4234
                - ds_put_char.4234
                - ds_put_char.4234
                - ds_put_char.4234
                - ds_put_char.4234
            - BranchSide:      'lib/packets.c:1666,9'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_char.4234
                - ds_put_char.4234
                - ds_put_char.4234
                - ds_put_char.4234
                - ds_put_char.4234
        - Branch String:   'lib/packets.c:1666,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1667,21'
              BranchSideFuncs:
                - ds_put_char.4234
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_char.4234
                - ds_put_char.4234
                - ds_put_char.4234
                - ds_put_char.4234
            - BranchSide:      'lib/packets.c:1669,9'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_char.4234
                - ds_put_char.4234
                - ds_put_char.4234
                - ds_put_char.4234
        - Branch String:   'lib/packets.c:1669,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1670,21'
              BranchSideFuncs:
                - ds_put_char.4234
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_char.4234
                - ds_put_char.4234
                - ds_put_char.4234
            - BranchSide:      'lib/packets.c:1672,9'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_char.4234
                - ds_put_char.4234
                - ds_put_char.4234
        - Branch String:   'lib/packets.c:1672,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1673,21'
              BranchSideFuncs:
                - ds_put_char.4234
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_char.4234
                - ds_put_char.4234
            - BranchSide:      'lib/packets.c:1675,9'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_char.4234
                - ds_put_char.4234
        - Branch String:   'lib/packets.c:1675,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1676,21'
              BranchSideFuncs:
                - ds_put_char.4234
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_char.4234
            - BranchSide:      'lib/packets.c:1678,9'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_char.4234
        - Branch String:   'lib/packets.c:1678,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1679,21'
              BranchSideFuncs:
                - ds_put_char.4234
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
            - BranchSide:      'lib/packets.c:1681,9'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
        - Branch String:   'lib/packets.c:1681,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1682,21'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
            - BranchSide:      'lib/packets.c:1684,9'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
        - Branch String:   'lib/packets.c:1684,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1685,21'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
            - BranchSide:      'lib/packets.c:1687,9'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
        - Branch String:   'lib/packets.c:1687,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1688,21'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
            - BranchSide:      'lib/packets.c:1690,9'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
        - Branch String:   'lib/packets.c:1690,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1691,21'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
                - ds_put_cstr
            - BranchSide:      'lib/packets.c:1693,9'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
        - Branch String:   'lib/packets.c:1693,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1694,21'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
            - BranchSide:      'lib/packets.c:1696,9'
              BranchSideFuncs:
                - ds_put_cstr
        - Branch String:   'lib/packets.c:1696,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1696,9'
              BranchSideFuncs:
                - ds_put_cstr
            - BranchSide:      'lib/packets.c:1697,21'
              BranchSideFuncs:
                - ds_put_cstr
      Callsites:
        - Src:             'lib/packets.c:1659,9'
          Dst:             ds_put_cstr
        - Src:             'lib/packets.c:1664,9'
          Dst:             ds_put_char
        - Src:             'lib/packets.c:1667,9'
          Dst:             ds_put_char
        - Src:             'lib/packets.c:1670,9'
          Dst:             ds_put_char
        - Src:             'lib/packets.c:1673,9'
          Dst:             ds_put_char
        - Src:             'lib/packets.c:1676,9'
          Dst:             ds_put_char
        - Src:             'lib/packets.c:1679,9'
          Dst:             ds_put_char
        - Src:             'lib/packets.c:1682,9'
          Dst:             ds_put_cstr
        - Src:             'lib/packets.c:1685,9'
          Dst:             ds_put_cstr
        - Src:             'lib/packets.c:1688,9'
          Dst:             ds_put_cstr
        - Src:             'lib/packets.c:1691,9'
          Dst:             ds_put_cstr
        - Src:             'lib/packets.c:1694,9'
          Dst:             ds_put_cstr
        - Src:             'lib/packets.c:1697,9'
          Dst:             ds_put_cstr
    - functionName:    ds_put_char
      functionSourceFile: '/src/openvswitch/./include/openvswitch/dynamic-string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ds
        - c
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_put_char__
      functionUses:    9
      BranchProfiles:
        - Branch String:   './include/openvswitch/dynamic-string.h:95,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/dynamic-string.h:96,36'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/dynamic-string.h:99,23'
              BranchSideFuncs:
                - ds_put_char__
      Callsites:
        - Src:             './include/openvswitch/dynamic-string.h:99,9'
          Dst:             ds_put_char__
    - functionName:    packet_tcp_flag_to_string
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1621
      functionLinenumberEnd: 1650
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - flag
      BBCount:         15
      ICount:          78
      EdgeCount:       28
      CyclomaticComplexity: 15
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:1622,5'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1624,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1626,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1628,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1630,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1632,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1634,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1636,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1638,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1640,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1642,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1644,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1646,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1648,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    packet_set_nd_ext
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1540
      functionLinenumberEnd: 1568
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - packet
        - rso_flags
        - opt_type
      BBCount:         9
      ICount:          99
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - csum_continue
        - csum_finish
        - dp_packet_l3
        - dp_packet_l4
        - dp_packet_l4_size
        - packet_csum_pseudoheader6
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:1547,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1548,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1551,9'
              BranchSideFuncs:
                - dp_packet_l4
                - csum_continue
                - csum_finish
                - packet_csum_pseudoheader6
        - Branch String:   'lib/packets.c:1551,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1552,53'
              BranchSideFuncs:
                - packet_csum_pseudoheader6
                - dp_packet_l4
                - csum_continue
                - csum_finish
            - BranchSide:      'lib/packets.c:1555,23'
              BranchSideFuncs:
                - dp_packet_l4
                - csum_continue
                - csum_finish
      Callsites:
        - Src:             'lib/packets.c:1543,24'
          Dst:             dp_packet_l4_size
        - Src:             'lib/packets.c:1544,41'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1552,27'
          Dst:             packet_csum_pseudoheader6
        - Src:             'lib/packets.c:1555,10'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1565,31'
          Dst:             csum_continue
        - Src:             'lib/packets.c:1565,19'
          Dst:             csum_finish
    - functionName:    packet_set_igmp3_query
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1500
      functionLinenumberEnd: 1535
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - char
        - int
        - bool
        - char
        - char
      constantsTouched: []
      argNames:
        - packet
        - max_resp
        - group
        - srs
        - qrv
        - qqic
      BBCount:         15
      ICount:          205
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - dp_packet_l4
        - get_16aligned_be32
        - htons
        - put_16aligned_be32
        - recalc_csum16
        - recalc_csum32
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:1507,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1508,9'
              BranchSideFuncs:
                - recalc_csum16
                - get_16aligned_be32
                - htons
                - htons
                - recalc_csum16
                - put_16aligned_be32
                - recalc_csum32
            - BranchSide:      'lib/packets.c:1514,46'
              BranchSideFuncs:
                - get_16aligned_be32
                - htons
                - htons
                - recalc_csum16
                - put_16aligned_be32
                - recalc_csum32
        - Branch String:   'lib/packets.c:1516,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1517,29'
              BranchSideFuncs:
                - put_16aligned_be32
                - recalc_csum32
                - htons
                - htons
                - recalc_csum16
            - BranchSide:      'lib/packets.c:1522,9'
              BranchSideFuncs:
                - htons
                - htons
                - recalc_csum16
        - Branch String:   'lib/packets.c:1522,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1523,13'
              BranchSideFuncs:
                - htons
                - htons
                - recalc_csum16
            - BranchSide:      'lib/packets.c:1526,40'
              BranchSideFuncs:
                - htons
                - htons
                - recalc_csum16
        - Branch String:   'lib/packets.c:1529,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1529,9'
              BranchSideFuncs:
                - recalc_csum16
            - BranchSide:      'lib/packets.c:1530,25'
              BranchSideFuncs:
                - recalc_csum16
      Callsites:
        - Src:             'lib/packets.c:1501,39'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1503,9'
          Dst:             htons
        - Src:             'lib/packets.c:1505,9'
          Dst:             htons
        - Src:             'lib/packets.c:1510,21'
          Dst:             recalc_csum16
        - Src:             'lib/packets.c:1514,26'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:1517,9'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:1518,21'
          Dst:             recalc_csum32
        - Src:             'lib/packets.c:1526,34'
          Dst:             htons
        - Src:             'lib/packets.c:1527,33'
          Dst:             htons
        - Src:             'lib/packets.c:1532,21'
          Dst:             recalc_csum16
    - functionName:    packet_set_icmp
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1479
      functionLinenumberEnd: 1491
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - char
      constantsTouched: []
      argNames:
        - packet
        - type
        - code
      BBCount:         6
      ICount:          86
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_l4
        - htons
        - pkt_metadata_init_conn
        - recalc_csum16
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:1484,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1484,9'
              BranchSideFuncs:
                - recalc_csum16
                - pkt_metadata_init_conn
            - BranchSide:      'lib/packets.c:1485,25'
              BranchSideFuncs:
                - recalc_csum16
                - pkt_metadata_init_conn
      Callsites:
        - Src:             'lib/packets.c:1480,30'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1481,24'
          Dst:             htons
        - Src:             'lib/packets.c:1482,23'
          Dst:             htons
        - Src:             'lib/packets.c:1488,25'
          Dst:             recalc_csum16
        - Src:             'lib/packets.c:1490,5'
          Dst:             pkt_metadata_init_conn
    - functionName:    packet_set_sctp_port
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1448
      functionLinenumberEnd: 1472
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - packet
        - src
        - dst
      BBCount:         6
      ICount:          94
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - crc32c
        - dp_packet_l4
        - dp_packet_l4_checksum_set_partial
        - dp_packet_l4_checksum_valid
        - dp_packet_l4_size
        - get_16aligned_be32
        - pkt_metadata_init_conn
        - put_16aligned_be32
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:1451,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1452,43'
              BranchSideFuncs:
                - dp_packet_l4_checksum_set_partial
                - pkt_metadata_init_conn
            - BranchSide:      'lib/packets.c:1457,45'
              BranchSideFuncs:
                - dp_packet_l4_size
                - get_16aligned_be32
                - put_16aligned_be32
                - crc32c
                - crc32c
                - put_16aligned_be32
                - pkt_metadata_init_conn
      Callsites:
        - Src:             'lib/packets.c:1449,30'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1451,9'
          Dst:             dp_packet_l4_checksum_valid
        - Src:             'lib/packets.c:1452,9'
          Dst:             dp_packet_l4_checksum_set_partial
        - Src:             'lib/packets.c:1457,27'
          Dst:             dp_packet_l4_size
        - Src:             'lib/packets.c:1459,20'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:1460,9'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:1461,28'
          Dst:             crc32c
        - Src:             'lib/packets.c:1466,20'
          Dst:             crc32c
        - Src:             'lib/packets.c:1467,9'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:1471,5'
          Dst:             pkt_metadata_init_conn
    - functionName:    packet_set_udp_port
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1422
      functionLinenumberEnd: 1441
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - packet
        - src
        - dst
      BBCount:         14
      ICount:          102
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - dp_packet_l4
        - dp_packet_l4_checksum_set_partial
        - dp_packet_l4_checksum_valid
        - htons
        - packet_set_port
        - pkt_metadata_init_conn
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:1425,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1426,43'
              BranchSideFuncs:
                - dp_packet_l4_checksum_set_partial
                - packet_set_port
                - packet_set_port
                - pkt_metadata_init_conn
            - BranchSide:      'lib/packets.c:1430,26'
              BranchSideFuncs:
                - packet_set_port
                - packet_set_port
                - pkt_metadata_init_conn
                - htons
        - Branch String:   'lib/packets.c:1430,26'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1430,42'
              BranchSideFuncs:
                - packet_set_port
                - packet_set_port
                - pkt_metadata_init_conn
                - htons
            - BranchSide:      'lib/packets.c:1430,19'
              BranchSideFuncs:
                - packet_set_port
                - packet_set_port
                - pkt_metadata_init_conn
                - htons
      Callsites:
        - Src:             'lib/packets.c:1423,29'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1425,9'
          Dst:             dp_packet_l4_checksum_valid
        - Src:             'lib/packets.c:1426,9'
          Dst:             dp_packet_l4_checksum_set_partial
        - Src:             'lib/packets.c:1427,9'
          Dst:             packet_set_port
        - Src:             'lib/packets.c:1428,9'
          Dst:             packet_set_port
        - Src:             'lib/packets.c:1432,9'
          Dst:             packet_set_port
        - Src:             'lib/packets.c:1433,9'
          Dst:             packet_set_port
        - Src:             'lib/packets.c:1436,28'
          Dst:             htons
        - Src:             'lib/packets.c:1440,5'
          Dst:             pkt_metadata_init_conn
    - functionName:    packet_set_port
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1388
      functionLinenumberEnd: 1395
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - port
        - new_port
        - csum
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - recalc_csum16
      functionUses:    6
      BranchProfiles:
        - Branch String:   'lib/packets.c:1389,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1389,9'
              BranchSideFuncs:
                - recalc_csum16
            - BranchSide:      'lib/packets.c:1390,13'
              BranchSideFuncs:
                - recalc_csum16
        - Branch String:   'lib/packets.c:1390,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1391,36'
              BranchSideFuncs:
                - recalc_csum16
            - BranchSide:      'lib/packets.c:1393,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/packets.c:1391,21'
          Dst:             recalc_csum16
    - functionName:    packet_set_tcp_port
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1402
      functionLinenumberEnd: 1415
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - packet
        - src
        - dst
      BBCount:         6
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_l4
        - dp_packet_l4_checksum_set_partial
        - dp_packet_l4_checksum_valid
        - packet_set_port
        - pkt_metadata_init_conn
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:1406,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1407,43'
              BranchSideFuncs:
                - dp_packet_l4_checksum_set_partial
                - packet_set_port
                - packet_set_port
                - pkt_metadata_init_conn
            - BranchSide:      'lib/packets.c:1409,17'
              BranchSideFuncs:
                - packet_set_port
                - packet_set_port
                - pkt_metadata_init_conn
      Callsites:
        - Src:             'lib/packets.c:1403,29'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1406,9'
          Dst:             dp_packet_l4_checksum_valid
        - Src:             'lib/packets.c:1407,9'
          Dst:             dp_packet_l4_checksum_set_partial
        - Src:             'lib/packets.c:1412,5'
          Dst:             packet_set_port
        - Src:             'lib/packets.c:1413,5'
          Dst:             packet_set_port
        - Src:             'lib/packets.c:1414,5'
          Dst:             pkt_metadata_init_conn
    - functionName:    packet_set_ipv4
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1317
      functionLinenumberEnd: 1353
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - char
        - char
      constantsTouched: []
      argNames:
        - packet
        - src
        - dst
        - tos
        - ttl
      BBCount:         21
      ICount:          173
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - dp_packet_ip_checksum_set_partial
        - dp_packet_ip_checksum_valid
        - dp_packet_l3
        - get_16aligned_be32
        - htons
        - packet_set_ipv4_addr
        - recalc_csum16
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:1320,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1321,30'
              BranchSideFuncs:
                - packet_set_ipv4_addr
                - get_16aligned_be32
                - dp_packet_ip_checksum_valid
                - htons
                - htons
                - recalc_csum16
                - dp_packet_ip_checksum_set_partial
                - dp_packet_ip_checksum_valid
                - htons
                - htons
                - recalc_csum16
                - dp_packet_ip_checksum_set_partial
                - packet_set_ipv4_addr
            - BranchSide:      'lib/packets.c:1324,29'
              BranchSideFuncs:
                - get_16aligned_be32
                - dp_packet_ip_checksum_valid
                - htons
                - htons
                - recalc_csum16
                - dp_packet_ip_checksum_set_partial
                - dp_packet_ip_checksum_valid
                - htons
                - htons
                - recalc_csum16
                - dp_packet_ip_checksum_set_partial
                - packet_set_ipv4_addr
        - Branch String:   'lib/packets.c:1324,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1325,30'
              BranchSideFuncs:
                - packet_set_ipv4_addr
                - dp_packet_ip_checksum_valid
                - htons
                - htons
                - recalc_csum16
                - dp_packet_ip_checksum_set_partial
                - dp_packet_ip_checksum_valid
                - htons
                - htons
                - recalc_csum16
                - dp_packet_ip_checksum_set_partial
            - BranchSide:      'lib/packets.c:1328,9'
              BranchSideFuncs:
                - dp_packet_ip_checksum_valid
                - htons
                - htons
                - recalc_csum16
                - dp_packet_ip_checksum_set_partial
                - dp_packet_ip_checksum_valid
                - htons
                - htons
                - recalc_csum16
                - dp_packet_ip_checksum_set_partial
        - Branch String:   'lib/packets.c:1328,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1329,27'
              BranchSideFuncs:
                - dp_packet_ip_checksum_valid
                - htons
                - htons
                - recalc_csum16
                - dp_packet_ip_checksum_valid
                - htons
                - htons
                - recalc_csum16
                - dp_packet_ip_checksum_set_partial
                - dp_packet_ip_checksum_set_partial
            - BranchSide:      'lib/packets.c:1341,9'
              BranchSideFuncs:
                - dp_packet_ip_checksum_valid
                - htons
                - htons
                - recalc_csum16
                - dp_packet_ip_checksum_set_partial
        - Branch String:   'lib/packets.c:1331,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1332,47'
              BranchSideFuncs:
                - dp_packet_ip_checksum_set_partial
                - dp_packet_ip_checksum_valid
                - htons
                - htons
                - recalc_csum16
                - dp_packet_ip_checksum_set_partial
            - BranchSide:      'lib/packets.c:1334,41'
              BranchSideFuncs:
                - htons
                - htons
                - recalc_csum16
                - dp_packet_ip_checksum_valid
                - htons
                - htons
                - recalc_csum16
                - dp_packet_ip_checksum_set_partial
        - Branch String:   'lib/packets.c:1341,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1341,9'
              BranchSideFuncs:
                - dp_packet_ip_checksum_valid
                - htons
                - htons
                - recalc_csum16
                - dp_packet_ip_checksum_set_partial
            - BranchSide:      'lib/packets.c:1342,27'
              BranchSideFuncs:
                - dp_packet_ip_checksum_valid
                - htons
                - htons
                - recalc_csum16
                - dp_packet_ip_checksum_set_partial
        - Branch String:   'lib/packets.c:1344,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1345,47'
              BranchSideFuncs:
                - dp_packet_ip_checksum_set_partial
            - BranchSide:      'lib/packets.c:1347,41'
              BranchSideFuncs:
                - htons
                - htons
                - recalc_csum16
      Callsites:
        - Src:             'lib/packets.c:1318,28'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1320,9'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:1321,9'
          Dst:             packet_set_ipv4_addr
        - Src:             'lib/packets.c:1324,9'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:1325,9'
          Dst:             packet_set_ipv4_addr
        - Src:             'lib/packets.c:1331,13'
          Dst:             dp_packet_ip_checksum_valid
        - Src:             'lib/packets.c:1332,13'
          Dst:             dp_packet_ip_checksum_set_partial
        - Src:             'lib/packets.c:1334,54'
          Dst:             htons
        - Src:             'lib/packets.c:1335,41'
          Dst:             htons
        - Src:             'lib/packets.c:1334,27'
          Dst:             recalc_csum16
        - Src:             'lib/packets.c:1344,13'
          Dst:             dp_packet_ip_checksum_valid
        - Src:             'lib/packets.c:1345,13'
          Dst:             dp_packet_ip_checksum_set_partial
        - Src:             'lib/packets.c:1347,54'
          Dst:             htons
        - Src:             'lib/packets.c:1348,41'
          Dst:             htons
        - Src:             'lib/packets.c:1347,27'
          Dst:             recalc_csum16
    - functionName:    packet_set_ipv4_addr
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1124
      functionLinenumberEnd: 1158
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - packet
        - addr
        - new_addr
      BBCount:         29
      ICount:          184
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - dp_packet_ip_checksum_set_partial
        - dp_packet_ip_checksum_valid
        - dp_packet_l3
        - dp_packet_l4
        - dp_packet_l4_checksum_set_partial
        - dp_packet_l4_checksum_valid
        - dp_packet_l4_size
        - get_16aligned_be32
        - htons
        - pkt_metadata_init_conn
        - put_16aligned_be32
        - recalc_csum32
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/packets.c:1131,37'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1131,40'
              BranchSideFuncs:
                - dp_packet_ip_checksum_valid
                - recalc_csum32
                - put_16aligned_be32
                - dp_packet_ip_checksum_set_partial
                - dp_packet_l4_checksum_valid
                - dp_packet_l4
                - recalc_csum32
                - htons
                - dp_packet_l4_checksum_set_partial
                - dp_packet_l4_checksum_valid
                - dp_packet_l4
                - recalc_csum32
                - dp_packet_l4_checksum_set_partial
            - BranchSide:      'lib/packets.c:1138,16'
              BranchSideFuncs:
                - dp_packet_ip_checksum_valid
                - recalc_csum32
                - put_16aligned_be32
                - dp_packet_ip_checksum_set_partial
                - dp_packet_l4_checksum_valid
                - dp_packet_l4
                - recalc_csum32
                - htons
                - dp_packet_l4_checksum_set_partial
        - Branch String:   'lib/packets.c:1131,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1132,41'
              BranchSideFuncs:
                - dp_packet_l4_checksum_valid
                - dp_packet_l4
                - recalc_csum32
                - dp_packet_ip_checksum_valid
                - recalc_csum32
                - put_16aligned_be32
                - dp_packet_ip_checksum_set_partial
                - dp_packet_l4_checksum_set_partial
            - BranchSide:      'lib/packets.c:1138,16'
              BranchSideFuncs:
                - dp_packet_ip_checksum_valid
                - recalc_csum32
                - put_16aligned_be32
                - dp_packet_ip_checksum_set_partial
                - dp_packet_l4_checksum_valid
                - dp_packet_l4
                - recalc_csum32
                - htons
                - dp_packet_l4_checksum_set_partial
        - Branch String:   'lib/packets.c:1132,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1133,47'
              BranchSideFuncs:
                - dp_packet_l4_checksum_set_partial
                - dp_packet_ip_checksum_valid
                - recalc_csum32
                - put_16aligned_be32
                - dp_packet_ip_checksum_set_partial
            - BranchSide:      'lib/packets.c:1135,50'
              BranchSideFuncs:
                - dp_packet_l4
                - recalc_csum32
                - dp_packet_ip_checksum_valid
                - recalc_csum32
                - put_16aligned_be32
                - dp_packet_ip_checksum_set_partial
        - Branch String:   'lib/packets.c:1139,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1140,47'
              BranchSideFuncs:
                - dp_packet_l4_checksum_set_partial
                - dp_packet_ip_checksum_valid
                - recalc_csum32
                - put_16aligned_be32
                - dp_packet_ip_checksum_set_partial
            - BranchSide:      'lib/packets.c:1142,50'
              BranchSideFuncs:
                - dp_packet_l4
                - dp_packet_ip_checksum_valid
                - recalc_csum32
                - put_16aligned_be32
                - dp_packet_ip_checksum_set_partial
                - recalc_csum32
                - htons
        - Branch String:   'lib/packets.c:1145,21'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1146,36'
              BranchSideFuncs:
                - dp_packet_ip_checksum_valid
                - recalc_csum32
                - put_16aligned_be32
                - dp_packet_ip_checksum_set_partial
            - BranchSide:      'lib/packets.c:1148,13'
              BranchSideFuncs:
                - dp_packet_ip_checksum_valid
                - recalc_csum32
                - put_16aligned_be32
                - dp_packet_ip_checksum_set_partial
        - Branch String:   'lib/packets.c:1152,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1153,43'
              BranchSideFuncs:
                - dp_packet_ip_checksum_set_partial
                - put_16aligned_be32
            - BranchSide:      'lib/packets.c:1155,37'
              BranchSideFuncs:
                - recalc_csum32
                - put_16aligned_be32
      Callsites:
        - Src:             'lib/packets.c:1125,28'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:1126,25'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:1127,22'
          Dst:             dp_packet_l4_size
        - Src:             'lib/packets.c:1129,5'
          Dst:             pkt_metadata_init_conn
        - Src:             'lib/packets.c:1132,13'
          Dst:             dp_packet_l4_checksum_valid
        - Src:             'lib/packets.c:1133,13'
          Dst:             dp_packet_l4_checksum_set_partial
        - Src:             'lib/packets.c:1135,37'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1136,28'
          Dst:             recalc_csum32
        - Src:             'lib/packets.c:1139,13'
          Dst:             dp_packet_l4_checksum_valid
        - Src:             'lib/packets.c:1140,13'
          Dst:             dp_packet_l4_checksum_set_partial
        - Src:             'lib/packets.c:1142,37'
          Dst:             dp_packet_l4
        - Src:             'lib/packets.c:1144,32'
          Dst:             recalc_csum32
        - Src:             'lib/packets.c:1146,36'
          Dst:             htons
        - Src:             'lib/packets.c:1152,9'
          Dst:             dp_packet_ip_checksum_valid
        - Src:             'lib/packets.c:1153,9'
          Dst:             dp_packet_ip_checksum_set_partial
        - Src:             'lib/packets.c:1155,23'
          Dst:             recalc_csum32
        - Src:             'lib/packets.c:1157,5'
          Dst:             put_16aligned_be32
    - functionName:    ipv6_is_zero
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 998
      functionLinenumberEnd: 1005
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
      BBCount:         8
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:999,4'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1000,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1004,4'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:1000,12'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1001,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1003,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ipv6_addr_bitxor
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 988
      functionLinenumberEnd: 993
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         5
      ICount:          52
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:990,4'
          Branch Sides:
            - BranchSide:      'lib/packets.c:991,26'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:993,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ipv6_addr_bitand
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 978
      functionLinenumberEnd: 983
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         5
      ICount:          52
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:980,4'
          Branch Sides:
            - BranchSide:      'lib/packets.c:981,26'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:983,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    in6_addr_get_mapped_ipv4
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1224
      functionLinenumberEnd: 1232
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - addr
      BBCount:         11
      ICount:          78
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - get_16aligned_be32
        - htonl
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/packets.h:1227,9'
          Branch Sides:
            - BranchSide:      'lib/packets.h:1227,9'
              BranchSideFuncs:
                - get_16aligned_be32
                - htonl
            - BranchSide:      'lib/packets.h:1227,9'
              BranchSideFuncs:
                - get_16aligned_be32
        - Branch String:   'lib/packets.h:1227,9'
          Branch Sides:
            - BranchSide:      'lib/packets.h:1227,9'
              BranchSideFuncs:
                - htonl
                - get_16aligned_be32
            - BranchSide:      'lib/packets.h:1227,9'
              BranchSideFuncs:
                - get_16aligned_be32
        - Branch String:   'lib/packets.h:1227,9'
          Branch Sides:
            - BranchSide:      'lib/packets.h:1228,36'
              BranchSideFuncs:
                - get_16aligned_be32
            - BranchSide:      'lib/packets.h:1230,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/packets.h:1227,9'
          Dst:             htonl
        - Src:             'lib/packets.h:1228,16'
          Dst:             get_16aligned_be32
    - functionName:    ipv6_string_mapped
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 958
      functionLinenumberEnd: 966
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - addr_str
        - addr
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - in6_addr_get_mapped_ipv4
        - inet_ntop
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:961,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:962,40'
              BranchSideFuncs:
                - inet_ntop
            - BranchSide:      'lib/packets.c:964,36'
              BranchSideFuncs:
                - inet_ntop
      Callsites:
        - Src:             'lib/packets.c:960,10'
          Dst:             in6_addr_get_mapped_ipv4
        - Src:             'lib/packets.c:962,16'
          Dst:             inet_ntop
        - Src:             'lib/packets.c:964,16'
          Dst:             inet_ntop
    - functionName:    ipv6_mask_is_exact
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1190
      functionLinenumberEnd: 1191
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mask
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ipv6_addr_equals
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.h:1191,12'
          Dst:             ipv6_addr_equals
    - functionName:    ipv6_format_masked
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 940
      functionLinenumberEnd: 951
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - addr
        - mask
        - s
      BBCount:         11
      ICount:          62
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ds_put_char
        - ds_put_format
        - ipv6_count_cidr_bits
        - ipv6_format_addr
        - ipv6_is_cidr
        - ipv6_mask_is_exact
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:942,14'
          Branch Sides:
            - BranchSide:      'lib/packets.c:942,37'
              BranchSideFuncs:
                - ipv6_mask_is_exact
                - ipv6_is_cidr
                - ds_put_char.4234
                - ipv6_format_addr
                - ipv6_count_cidr_bits
                - ds_put_format
            - BranchSide:      'lib/packets.c:942,14'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:942,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:942,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:943,26'
              BranchSideFuncs:
                - ipv6_is_cidr
                - ds_put_char.4234
                - ipv6_format_addr
                - ipv6_count_cidr_bits
                - ds_put_format
        - Branch String:   'lib/packets.c:943,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:944,50'
              BranchSideFuncs:
                - ipv6_count_cidr_bits
                - ds_put_format
            - BranchSide:      'lib/packets.c:947,25'
              BranchSideFuncs:
                - ds_put_char.4234
                - ipv6_format_addr
      Callsites:
        - Src:             'lib/packets.c:941,5'
          Dst:             ipv6_format_addr
        - Src:             'lib/packets.c:942,18'
          Dst:             ipv6_mask_is_exact
        - Src:             'lib/packets.c:943,13'
          Dst:             ipv6_is_cidr
        - Src:             'lib/packets.c:944,29'
          Dst:             ipv6_count_cidr_bits
        - Src:             'lib/packets.c:945,13'
          Dst:             ds_put_format
        - Src:             'lib/packets.c:947,13'
          Dst:             ds_put_char
        - Src:             'lib/packets.c:948,13'
          Dst:             ipv6_format_addr
    - functionName:    ipv6_format_addr
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 901
      functionLinenumberEnd: 909
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - addr
        - s
      BBCount:         3
      ICount:          43
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_reserve
        - inet_ntop
        - strlen
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:904,5'
          Dst:             ds_reserve
        - Src:             'lib/packets.c:907,5'
          Dst:             inet_ntop
        - Src:             'lib/packets.c:908,18'
          Dst:             strlen
    - functionName:    ipv6_is_cidr
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1063
      functionLinenumberEnd: 1082
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - netmask
      BBCount:         16
      ICount:          101
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/packets.c:1067,5'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1068,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1081,5'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:1068,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1069,26'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1079,5'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:1070,17'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1071,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1073,13'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:1073,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1074,21'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1078,9'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:1074,21'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1073,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1075,21'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ipv6_count_cidr_bits
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1037
      functionLinenumberEnd: 1056
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - netmask
      BBCount:         13
      ICount:          80
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/packets.c:1042,5'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1042,5'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1043,13'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:1043,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1044,19'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1048,22'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:1048,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1049,22'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1051,13'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ipv6_format_mapped
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 928
      functionLinenumberEnd: 935
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - addr
        - s
      BBCount:         11
      ICount:          95
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ds_put_format
        - htonl
        - ipv6_format_addr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:929,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:929,9'
              BranchSideFuncs:
                - ipv6_format_addr
                - ds_put_format
                - htonl
            - BranchSide:      'lib/packets.c:929,9'
              BranchSideFuncs:
                - ipv6_format_addr
                - ds_put_format
        - Branch String:   'lib/packets.c:929,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:929,9'
              BranchSideFuncs:
                - htonl
                - ipv6_format_addr
                - ds_put_format
            - BranchSide:      'lib/packets.c:929,9'
              BranchSideFuncs:
                - ipv6_format_addr
                - ds_put_format
        - Branch String:   'lib/packets.c:929,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:930,23'
              BranchSideFuncs:
                - ds_put_format
            - BranchSide:      'lib/packets.c:933,26'
              BranchSideFuncs:
                - ipv6_format_addr
      Callsites:
        - Src:             'lib/packets.c:929,9'
          Dst:             htonl
        - Src:             'lib/packets.c:930,9'
          Dst:             ds_put_format
        - Src:             'lib/packets.c:933,9'
          Dst:             ipv6_format_addr
    - functionName:    ipv6_format_addr_bracket
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 916
      functionLinenumberEnd: 924
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - addr
        - s
        - bracket
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ds_put_char
        - ipv6_format_addr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:917,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:918,21'
              BranchSideFuncs:
                - ds_put_char.4234
                - ipv6_format_addr
                - ds_put_char.4234
            - BranchSide:      'lib/packets.c:920,22'
              BranchSideFuncs:
                - ipv6_format_addr
                - ds_put_char.4234
        - Branch String:   'lib/packets.c:921,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:921,9'
              BranchSideFuncs:
                - ds_put_char.4234
            - BranchSide:      'lib/packets.c:922,21'
              BranchSideFuncs:
                - ds_put_char.4234
      Callsites:
        - Src:             'lib/packets.c:918,9'
          Dst:             ds_put_char
        - Src:             'lib/packets.c:920,5'
          Dst:             ipv6_format_addr
        - Src:             'lib/packets.c:922,9'
          Dst:             ds_put_char
    - functionName:    ipv6_parse_cidr
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 886
      functionLinenumberEnd: 894
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - ip
        - plen
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ipv6_parse_cidr_len
        - xasprintf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:890,16'
          Branch Sides:
            - BranchSide:      'lib/packets.c:890,19'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:893,12'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:890,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:891,54'
              BranchSideFuncs:
                - xasprintf
            - BranchSide:      'lib/packets.c:893,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/packets.c:889,19'
          Dst:             ipv6_parse_cidr_len
        - Src:             'lib/packets.c:891,16'
          Dst:             xasprintf
    - functionName:    ipv6_parse_cidr_len
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 866
      functionLinenumberEnd: 880
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - n
        - ip
        - plen
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ipv6_count_cidr_bits
        - ipv6_is_cidr
        - ipv6_parse_masked_len
        - xasprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/packets.c:871,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:872,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:875,10'
              BranchSideFuncs:
                - ipv6_is_cidr
                - xasprintf
                - ipv6_count_cidr_bits
        - Branch String:   'lib/packets.c:875,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:876,60'
              BranchSideFuncs:
                - ipv6_count_cidr_bits
            - BranchSide:      'lib/packets.c:878,13'
              BranchSideFuncs:
                - ipv6_count_cidr_bits
      Callsites:
        - Src:             'lib/packets.c:870,13'
          Dst:             ipv6_parse_masked_len
        - Src:             'lib/packets.c:875,10'
          Dst:             ipv6_is_cidr
        - Src:             'lib/packets.c:876,16'
          Dst:             xasprintf
        - Src:             'lib/packets.c:878,13'
          Dst:             ipv6_count_cidr_bits
    - functionName:    ipv6_parse_masked_len
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 820
      functionLinenumberEnd: 844
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - n
        - ip
        - mask
      BBCount:         22
      ICount:          120
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - ipv6_create_mask
        - ipv6_parse
        - ovs_scan_len
        - xasprintf
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/packets.c:825,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:825,23'
              BranchSideFuncs:
                - ipv6_parse
                - xasprintf
                - ovs_scan_len
                - ovs_scan_len
                - ipv6_parse
                - xasprintf
                - ipv6_create_mask
                - xasprintf
            - BranchSide:      'lib/packets.c:843,50'
              BranchSideFuncs:
                - xasprintf
        - Branch String:   'lib/packets.c:824,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:826,26'
              BranchSideFuncs:
                - ovs_scan_len
                - ovs_scan_len
                - ipv6_parse
                - xasprintf
                - ipv6_create_mask
                - xasprintf
            - BranchSide:      'lib/packets.c:843,50'
              BranchSideFuncs:
                - xasprintf
        - Branch String:   'lib/packets.c:826,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:827,17'
              BranchSideFuncs:
                - ipv6_create_mask
                - xasprintf
            - BranchSide:      'lib/packets.c:832,33'
              BranchSideFuncs:
                - ovs_scan_len
                - ipv6_parse
                - xasprintf
        - Branch String:   'lib/packets.c:827,28'
          Branch Sides:
            - BranchSide:      'lib/packets.c:827,31'
              BranchSideFuncs:
                - xasprintf
            - BranchSide:      'lib/packets.c:829,56'
              BranchSideFuncs:
                - xasprintf
        - Branch String:   'lib/packets.c:827,17'
          Branch Sides:
            - BranchSide:      'lib/packets.c:829,56'
              BranchSideFuncs:
                - xasprintf
            - BranchSide:      'lib/packets.c:831,14'
              BranchSideFuncs:
                - ipv6_create_mask
        - Branch String:   'lib/packets.c:832,20'
          Branch Sides:
            - BranchSide:      'lib/packets.c:833,30'
              BranchSideFuncs:
                - ipv6_parse
                - xasprintf
            - BranchSide:      'lib/packets.c:839,14'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:833,18'
          Branch Sides:
            - BranchSide:      'lib/packets.c:834,60'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:837,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/packets.c:824,9'
          Dst:             ovs_scan_len
        - Src:             'lib/packets.c:825,12'
          Dst:             ipv6_parse
        - Src:             'lib/packets.c:826,13'
          Dst:             ovs_scan_len
        - Src:             'lib/packets.c:828,24'
          Dst:             xasprintf
        - Src:             'lib/packets.c:831,21'
          Dst:             ipv6_create_mask
        - Src:             'lib/packets.c:832,20'
          Dst:             ovs_scan_len
        - Src:             'lib/packets.c:833,19'
          Dst:             ipv6_parse
        - Src:             'lib/packets.c:834,25'
          Dst:             xasprintf
        - Src:             'lib/packets.c:843,12'
          Dst:             xasprintf
    - functionName:    ipv6_parse
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 806
      functionLinenumberEnd: 807
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - ip
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - inet_pton
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:807,12'
          Dst:             inet_pton
    - functionName:    ipv6_create_mask
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1011
      functionLinenumberEnd: 1026
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - mask
      BBCount:         7
      ICount:          52
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/packets.c:1016,5'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1017,10'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1022,9'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:1022,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:1022,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:1023,34'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    inet_pton
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ipv6_parse_masked
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 851
      functionLinenumberEnd: 859
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - ip
        - mask
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ipv6_parse_masked_len
        - xasprintf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:855,16'
          Branch Sides:
            - BranchSide:      'lib/packets.c:855,19'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:858,12'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:855,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:856,54'
              BranchSideFuncs:
                - xasprintf
            - BranchSide:      'lib/packets.c:858,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/packets.c:854,19'
          Dst:             ipv6_parse_masked_len
        - Src:             'lib/packets.c:856,16'
          Dst:             xasprintf
    - functionName:    ip_parse_cidr
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 792
      functionLinenumberEnd: 800
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - ip
        - plen
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ip_parse_cidr_len
        - xasprintf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:796,16'
          Branch Sides:
            - BranchSide:      'lib/packets.c:796,19'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:799,12'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:796,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:797,52'
              BranchSideFuncs:
                - xasprintf
            - BranchSide:      'lib/packets.c:799,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/packets.c:795,19'
          Dst:             ip_parse_cidr_len
        - Src:             'lib/packets.c:797,16'
          Dst:             xasprintf
    - functionName:    ip_parse_cidr_len
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 771
      functionLinenumberEnd: 785
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - n
        - ip
        - plen
      BBCount:         8
      ICount:          62
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ip_count_cidr_bits
        - ip_is_cidr
        - ip_parse_masked_len
        - xasprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/packets.c:776,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:777,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:780,21'
              BranchSideFuncs:
                - ip_is_cidr
                - xasprintf
                - ip_count_cidr_bits
        - Branch String:   'lib/packets.c:780,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:781,55'
              BranchSideFuncs:
                - ip_count_cidr_bits
            - BranchSide:      'lib/packets.c:783,32'
              BranchSideFuncs:
                - ip_count_cidr_bits
      Callsites:
        - Src:             'lib/packets.c:775,13'
          Dst:             ip_parse_masked_len
        - Src:             'lib/packets.c:780,10'
          Dst:             ip_is_cidr
        - Src:             'lib/packets.c:781,16'
          Dst:             xasprintf
        - Src:             'lib/packets.c:783,13'
          Dst:             ip_count_cidr_bits
    - functionName:    ip_parse_masked_len
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 728
      functionLinenumberEnd: 747
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - n
        - ip
        - mask
      BBCount:         18
      ICount:          128
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - be32_prefix_mask
        - ovs_scan_len
        - xasprintf
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/packets.c:731,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:734,5'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:734,29'
              BranchSideFuncs:
                - ovs_scan_len
                - ovs_scan_len
                - xasprintf
                - be32_prefix_mask
                - xasprintf
        - Branch String:   'lib/packets.c:734,16'
          Branch Sides:
            - BranchSide:      'lib/packets.c:736,13'
              BranchSideFuncs:
                - be32_prefix_mask
                - xasprintf
            - BranchSide:      'lib/packets.c:741,29'
              BranchSideFuncs:
                - ovs_scan_len
                - xasprintf
        - Branch String:   'lib/packets.c:736,24'
          Branch Sides:
            - BranchSide:      'lib/packets.c:736,27'
              BranchSideFuncs:
                - xasprintf
            - BranchSide:      'lib/packets.c:738,48'
              BranchSideFuncs:
                - xasprintf
        - Branch String:   'lib/packets.c:736,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:738,48'
              BranchSideFuncs:
                - xasprintf
            - BranchSide:      'lib/packets.c:740,34'
              BranchSideFuncs:
                - be32_prefix_mask
        - Branch String:   'lib/packets.c:741,16'
          Branch Sides:
            - BranchSide:      'lib/packets.c:742,10'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:744,52'
              BranchSideFuncs:
                - xasprintf
      Callsites:
        - Src:             'lib/packets.c:731,9'
          Dst:             ovs_scan_len
        - Src:             'lib/packets.c:734,16'
          Dst:             ovs_scan_len
        - Src:             'lib/packets.c:737,20'
          Dst:             xasprintf
        - Src:             'lib/packets.c:740,17'
          Dst:             be32_prefix_mask
        - Src:             'lib/packets.c:741,16'
          Dst:             ovs_scan_len
        - Src:             'lib/packets.c:744,16'
          Dst:             xasprintf
    - functionName:    ip_is_cidr
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 664
      functionLinenumberEnd: 666
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - netmask
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ntohl
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.h:665,19'
          Dst:             ntohl
    - functionName:    ip_count_cidr_bits
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 675
      functionLinenumberEnd: 676
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - netmask
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ctz32
        - ntohl
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:676,23'
          Dst:             ntohl
        - Src:             'lib/packets.c:676,17'
          Dst:             ctz32
    - functionName:    ctz32
      functionSourceFile: '/src/openvswitch/lib/util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 342
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - n
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - raw_ctz
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/util.h:342,12'
          Branch Sides:
            - BranchSide:      'lib/util.h:342,24'
              BranchSideFuncs:
                - raw_ctz
            - BranchSide:      'lib/util.h:342,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/util.h:342,16'
          Dst:             raw_ctz
    - functionName:    be32_prefix_mask
      functionSourceFile: '/src/openvswitch/lib/util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 471
      functionLinenumberEnd: 472
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - plen
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htonl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/util.h:472,12'
          Dst:             htonl
    - functionName:    ip_parse_masked
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 757
      functionLinenumberEnd: 765
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - ip
        - mask
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ip_parse_masked_len
        - xasprintf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:761,16'
          Branch Sides:
            - BranchSide:      'lib/packets.c:761,19'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:764,12'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:761,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:762,52'
              BranchSideFuncs:
                - xasprintf
            - BranchSide:      'lib/packets.c:764,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/packets.c:760,19'
          Dst:             ip_parse_masked_len
        - Src:             'lib/packets.c:762,16'
          Dst:             xasprintf
    - functionName:    ip_parse_port
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 708
      functionLinenumberEnd: 716
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - ip
        - port
      BBCount:         9
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_scan
        - xasprintf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:711,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:711,13'
              BranchSideFuncs:
                - xasprintf
            - BranchSide:      'lib/packets.c:715,63'
              BranchSideFuncs:
                - xasprintf
        - Branch String:   'lib/packets.c:710,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:712,9'
              BranchSideFuncs:
                - xasprintf
            - BranchSide:      'lib/packets.c:715,63'
              BranchSideFuncs:
                - xasprintf
      Callsites:
        - Src:             'lib/packets.c:710,9'
          Dst:             ovs_scan
        - Src:             'lib/packets.c:715,12'
          Dst:             xasprintf
    - functionName:    ip_parse
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 696
      functionLinenumberEnd: 697
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - ip
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - inet_pton
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:697,12'
          Dst:             inet_pton
    - functionName:    ip_format_masked
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 681
      functionLinenumberEnd: 690
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ip
        - mask
        - s
      BBCount:         9
      ICount:          76
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ds_put_format
        - ip_count_cidr_bits
        - ip_is_cidr
        - ntohl
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:683,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:683,9'
              BranchSideFuncs:
                - ip_is_cidr
                - ntohl
                - ntohl
                - ntohl
                - ntohl
                - ds_put_format
                - ip_count_cidr_bits
                - ds_put_format
            - BranchSide:      'lib/packets.c:684,24'
              BranchSideFuncs:
                - ip_is_cidr
                - ntohl
                - ntohl
                - ntohl
                - ntohl
                - ds_put_format
                - ip_count_cidr_bits
                - ds_put_format
        - Branch String:   'lib/packets.c:684,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:685,27'
              BranchSideFuncs:
                - ip_count_cidr_bits
                - ds_put_format
            - BranchSide:      'lib/packets.c:687,27'
              BranchSideFuncs:
                - ntohl
                - ntohl
                - ntohl
                - ntohl
                - ds_put_format
      Callsites:
        - Src:             'lib/packets.c:682,30'
          Dst:             ntohl
        - Src:             'lib/packets.c:682,30'
          Dst:             ntohl
        - Src:             'lib/packets.c:682,30'
          Dst:             ntohl
        - Src:             'lib/packets.c:682,30'
          Dst:             ntohl
        - Src:             'lib/packets.c:682,5'
          Dst:             ds_put_format
        - Src:             'lib/packets.c:684,13'
          Dst:             ip_is_cidr
        - Src:             'lib/packets.c:685,37'
          Dst:             ip_count_cidr_bits
        - Src:             'lib/packets.c:685,13'
          Dst:             ds_put_format
        - Src:             'lib/packets.c:687,41'
          Dst:             ntohl
        - Src:             'lib/packets.c:687,41'
          Dst:             ntohl
        - Src:             'lib/packets.c:687,41'
          Dst:             ntohl
        - Src:             'lib/packets.c:687,41'
          Dst:             ntohl
        - Src:             'lib/packets.c:687,13'
          Dst:             ds_put_format
    - functionName:    in6_is_lla
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 647
      functionLinenumberEnd: 649
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - addr
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - htonl
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:649,52'
          Branch Sides:
            - BranchSide:      'lib/packets.c:649,57'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:649,52'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/packets.c:649,34'
          Dst:             htonl
    - functionName:    in6_generate_lla
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 633
      functionLinenumberEnd: 642
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ea
        - lla
      BBCount:         3
      ICount:          75
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htons
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:637,22'
          Dst:             htons
        - Src:             'lib/packets.c:638,22'
          Dst:             htons
        - Src:             'lib/packets.c:639,22'
          Dst:             htons
        - Src:             'lib/packets.c:640,22'
          Dst:             htons
    - functionName:    in6_generate_eui64
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 614
      functionLinenumberEnd: 627
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ea
        - prefix
        - lla
      BBCount:         3
      ICount:          99
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htons
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:623,22'
          Dst:             htons
        - Src:             'lib/packets.c:624,22'
          Dst:             htons
        - Src:             'lib/packets.c:625,22'
          Dst:             htons
    - functionName:    eth_mask_is_exact
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htons
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.h:256,51'
          Dst:             htons
    - functionName:    eth_format_masked
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 588
      functionLinenumberEnd: 593
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - eth
        - mask
        - s
      BBCount:         8
      ICount:          107
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ds_put_format
        - eth_mask_is_exact
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:590,14'
          Branch Sides:
            - BranchSide:      'lib/packets.c:590,37'
              BranchSideFuncs:
                - eth_mask_is_exact
                - ds_put_format
            - BranchSide:      'lib/packets.c:590,14'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:590,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:590,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:591,23'
              BranchSideFuncs:
                - ds_put_format
      Callsites:
        - Src:             'lib/packets.c:589,5'
          Dst:             ds_put_format
        - Src:             'lib/packets.c:590,18'
          Dst:             eth_mask_is_exact
        - Src:             'lib/packets.c:591,9'
          Dst:             ds_put_format
    - functionName:    dp_packet_delete
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 270
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         10
      ICount:          55
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - dp_packet_uninit
        - free_afxdp_buf
        - free_dpdk_buf
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:271,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:271,9'
              BranchSideFuncs:
                - dp_packet_uninit
                - free
                - free_afxdp_buf
                - free_dpdk_buf
            - BranchSide:      'lib/dp-packet.h:272,13'
              BranchSideFuncs:
                - dp_packet_uninit
                - free
                - free_afxdp_buf
                - free_dpdk_buf
        - Branch String:   'lib/dp-packet.h:272,13'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:273,27'
              BranchSideFuncs:
                - free_dpdk_buf
            - BranchSide:      'lib/dp-packet.h:277,13'
              BranchSideFuncs:
                - dp_packet_uninit
                - free
                - free_afxdp_buf
        - Branch String:   'lib/dp-packet.h:277,13'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:278,28'
              BranchSideFuncs:
                - free_afxdp_buf
            - BranchSide:      'lib/dp-packet.h:282,26'
              BranchSideFuncs:
                - dp_packet_uninit
                - free
      Callsites:
        - Src:             'lib/dp-packet.h:273,13'
          Dst:             free_dpdk_buf
        - Src:             'lib/dp-packet.h:278,13'
          Dst:             free_afxdp_buf
        - Src:             'lib/dp-packet.h:282,9'
          Dst:             dp_packet_uninit
    - functionName:    eth_from_hex
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 564
      functionLinenumberEnd: 583
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hex
        - packetp
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - dp_packet_delete
        - dp_packet_new_with_headroom
        - dp_packet_put_hex
        - dp_packet_size
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:570,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:571,26'
              BranchSideFuncs:
                - dp_packet_delete
            - BranchSide:      'lib/packets.c:576,24'
              BranchSideFuncs:
                - dp_packet_size
                - dp_packet_delete
        - Branch String:   'lib/packets.c:576,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:577,26'
              BranchSideFuncs:
                - dp_packet_delete
            - BranchSide:      'lib/packets.c:582,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/packets.c:568,53'
          Dst:             strlen
        - Src:             'lib/packets.c:568,25'
          Dst:             dp_packet_new_with_headroom
        - Src:             'lib/packets.c:570,9'
          Dst:             dp_packet_put_hex
        - Src:             'lib/packets.c:571,9'
          Dst:             dp_packet_delete
        - Src:             'lib/packets.c:576,9'
          Dst:             dp_packet_size
        - Src:             'lib/packets.c:577,9'
          Dst:             dp_packet_delete
    - functionName:    dp_packet_reset_packet
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1369
      functionLinenumberEnd: 1373
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - b
        - off
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_data
        - dp_packet_reset_offsets
        - dp_packet_set_data
        - dp_packet_set_size
        - dp_packet_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:1370,27'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.h:1370,5'
          Dst:             dp_packet_set_size
        - Src:             'lib/dp-packet.h:1371,46'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.h:1371,5'
          Dst:             dp_packet_set_data
        - Src:             'lib/dp-packet.h:1372,5'
          Dst:             dp_packet_reset_offsets
    - functionName:    pop_nsh
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - packet
      BBCount:         15
      ICount:          91
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_l3
        - dp_packet_reset_packet
        - htonl
        - nsh_hdr_len
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:530,46'
          Branch Sides:
            - BranchSide:      'lib/packets.c:530,49'
              BranchSideFuncs:
                - nsh_hdr_len
                - dp_packet_reset_packet
                - htonl
            - BranchSide:      'lib/packets.c:554,5'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:530,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:531,17'
              BranchSideFuncs:
                - nsh_hdr_len
                - dp_packet_reset_packet
                - htonl
            - BranchSide:      'lib/packets.c:554,5'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:531,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:533,25'
              BranchSideFuncs:
                - nsh_hdr_len
                - dp_packet_reset_packet
                - htonl
            - BranchSide:      'lib/packets.c:536,25'
              BranchSideFuncs:
                - nsh_hdr_len
                - dp_packet_reset_packet
                - htonl
            - BranchSide:      'lib/packets.c:539,25'
              BranchSideFuncs:
                - nsh_hdr_len
                - dp_packet_reset_packet
                - htonl
            - BranchSide:      'lib/packets.c:542,25'
              BranchSideFuncs:
                - nsh_hdr_len
                - dp_packet_reset_packet
                - htonl
            - BranchSide:      'lib/packets.c:546,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/packets.c:526,46'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:530,32'
          Dst:             htonl
        - Src:             'lib/packets.c:549,18'
          Dst:             nsh_hdr_len
        - Src:             'lib/packets.c:550,9'
          Dst:             dp_packet_reset_packet
        - Src:             'lib/packets.c:551,31'
          Dst:             htonl
    - functionName:    nsh_hdr_len
      functionSourceFile: '/src/openvswitch/./include/openvswitch/nsh.h'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - nsh
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ntohs
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/nsh.h:274,14'
          Dst:             ntohs
    - functionName:    push_nsh
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 493
      functionLinenumberEnd: 521
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - packet
        - nsh_hdr_src
      BBCount:         9
      ICount:          81
      EdgeCount:       16
      CyclomaticComplexity: 9
      functionsReached:
        - abort
        - dp_packet_reset_offsets
        - dp_packet_resize_l2
        - htonl
        - nsh_hdr_len
        - ntohl
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:498,5'
          Branch Sides:
            - BranchSide:      'lib/packets.c:500,24'
              BranchSideFuncs:
                - dp_packet_resize_l2
                - htonl
                - dp_packet_reset_offsets
            - BranchSide:      'lib/packets.c:503,24'
              BranchSideFuncs:
                - dp_packet_resize_l2
                - htonl
                - dp_packet_reset_offsets
            - BranchSide:      'lib/packets.c:506,24'
              BranchSideFuncs:
                - dp_packet_resize_l2
                - htonl
                - dp_packet_reset_offsets
            - BranchSide:      'lib/packets.c:509,24'
              BranchSideFuncs:
                - dp_packet_resize_l2
                - htonl
                - dp_packet_reset_offsets
            - BranchSide:      'lib/packets.c:512,13'
              BranchSideFuncs:
                - abort
      Callsites:
        - Src:             'lib/packets.c:495,21'
          Dst:             nsh_hdr_len
        - Src:             'lib/packets.c:498,13'
          Dst:             ntohl
        - Src:             'lib/packets.c:512,13'
          Dst:             abort
        - Src:             'lib/packets.c:515,30'
          Dst:             dp_packet_resize_l2
        - Src:             'lib/packets.c:518,27'
          Dst:             htonl
        - Src:             'lib/packets.c:519,5'
          Dst:             dp_packet_reset_offsets
    - functionName:    dp_packet_set_l2_5
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 452
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
        - l2_5
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:453,19'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:453,19'
              BranchSideFuncs:
                - dp_packet_data
            - BranchSide:      'lib/dp-packet.h:454,30'
              BranchSideFuncs:
                - dp_packet_data
      Callsites:
        - Src:             'lib/dp-packet.h:454,46'
          Dst:             dp_packet_data
    - functionName:    pop_mpls
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 489
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - packet
        - ethtype
      BBCount:         15
      ICount:          105
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - dp_packet_data
        - dp_packet_l2_5
        - dp_packet_reset_offload
        - dp_packet_resize_l2_5
        - dp_packet_set_l2_5
        - get_16aligned_be32
        - htonl
        - htons
        - is_mpls
        - ntohs
        - set_ethertype
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:461,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:461,9'
              BranchSideFuncs:
                - dp_packet_l2_5
                - set_ethertype
                - get_16aligned_be32
                - htonl
                - dp_packet_data
                - dp_packet_data
                - dp_packet_resize_l2_5
                - dp_packet_reset_offload
                - htons
                - ntohs
                - htonl
                - htonl
                - dp_packet_set_l2_5
            - BranchSide:      'lib/packets.c:462,46'
              BranchSideFuncs:
                - dp_packet_l2_5
                - set_ethertype
                - get_16aligned_be32
                - htonl
                - dp_packet_data
                - dp_packet_data
                - dp_packet_resize_l2_5
                - dp_packet_reset_offload
                - htons
                - ntohs
                - htonl
                - htonl
                - dp_packet_set_l2_5
        - Branch String:   'lib/packets.c:466,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:467,32'
              BranchSideFuncs:
                - dp_packet_set_l2_5
                - dp_packet_data
                - dp_packet_data
                - dp_packet_resize_l2_5
                - dp_packet_reset_offload
                - htons
                - ntohs
                - htonl
                - htonl
            - BranchSide:      'lib/packets.c:470,39'
              BranchSideFuncs:
                - dp_packet_data
                - dp_packet_data
                - dp_packet_resize_l2_5
                - dp_packet_reset_offload
                - htons
                - ntohs
                - htonl
                - htonl
        - Branch String:   'lib/packets.c:478,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:479,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:488,5'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:479,17'
          Branch Sides:
            - BranchSide:      'lib/packets.c:482,39'
              BranchSideFuncs:
                - htonl
            - BranchSide:      'lib/packets.c:484,39'
              BranchSideFuncs:
                - ntohs
                - htonl
      Callsites:
        - Src:             'lib/packets.c:461,9'
          Dst:             is_mpls
        - Src:             'lib/packets.c:462,31'
          Dst:             dp_packet_l2_5
        - Src:             'lib/packets.c:465,9'
          Dst:             set_ethertype
        - Src:             'lib/packets.c:466,13'
          Dst:             get_16aligned_be32
        - Src:             'lib/packets.c:466,49'
          Dst:             htonl
        - Src:             'lib/packets.c:467,13'
          Dst:             dp_packet_set_l2_5
        - Src:             'lib/packets.c:470,24'
          Dst:             dp_packet_data
        - Src:             'lib/packets.c:470,60'
          Dst:             dp_packet_data
        - Src:             'lib/packets.c:471,9'
          Dst:             dp_packet_resize_l2_5
        - Src:             'lib/packets.c:475,9'
          Dst:             dp_packet_reset_offload
        - Src:             'lib/packets.c:479,28'
          Dst:             htons
        - Src:             'lib/packets.c:482,39'
          Dst:             htonl
        - Src:             'lib/packets.c:484,39'
          Dst:             ntohs
        - Src:             'lib/packets.c:484,39'
          Dst:             htonl
    - functionName:    is_mpls
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 329
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - packet
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_l2_5
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:445,12'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:445,12'
              BranchSideFuncs:
                - dp_packet_data
            - BranchSide:      'lib/dp-packet.h:446,38'
              BranchSideFuncs:
                - dp_packet_data
      Callsites:
        - Src:             'lib/dp-packet.h:446,23'
          Dst:             dp_packet_data
    - functionName:    set_ethertype
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 325
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - packet
        - eth_type
      BBCount:         11
      ICount:          70
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - dp_packet_eth
        - dp_packet_l2_5
        - dp_packet_l3
        - eth_type_vlan
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/packets.c:311,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:312,9'
              BranchSideFuncs:
                - eth_type_vlan
                - dp_packet_l2_5
                - dp_packet_l3
            - BranchSide:      'lib/packets.c:315,23'
              BranchSideFuncs:
                - eth_type_vlan
                - dp_packet_l2_5
                - dp_packet_l3
        - Branch String:   'lib/packets.c:315,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:317,37'
              BranchSideFuncs:
                - dp_packet_l2_5
                - dp_packet_l3
            - BranchSide:      'lib/packets.c:323,24'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:319,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:319,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:319,13'
              BranchSideFuncs:
                - dp_packet_l3
      Callsites:
        - Src:             'lib/packets.c:309,29'
          Dst:             dp_packet_eth
        - Src:             'lib/packets.c:315,9'
          Dst:             eth_type_vlan
        - Src:             'lib/packets.c:317,22'
          Dst:             dp_packet_l2_5
        - Src:             'lib/packets.c:319,13'
          Dst:             dp_packet_l3
    - functionName:    eth_type_vlan
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - eth_type
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - htons
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/packets.h:430,51'
          Branch Sides:
            - BranchSide:      'lib/packets.h:430,51'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.h:431,9'
              BranchSideFuncs:
                - htons
      Callsites:
        - Src:             'lib/packets.h:430,24'
          Dst:             htons
        - Src:             'lib/packets.h:431,21'
          Dst:             htons
    - functionName:    add_mpls
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 452
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - int
        - bool
      constantsTouched: []
      argNames:
        - packet
        - ethtype
        - lse
        - l3_encap
      BBCount:         12
      ICount:          104
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - dp_packet_resize_l2
        - dp_packet_resize_l2_5
        - eth_type_mpls
        - htonl
        - is_mpls
        - ntohs
        - pkt_metadata_init_conn
        - put_16aligned_be32
        - set_ethertype
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:424,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:425,9'
              BranchSideFuncs:
                - dp_packet_resize_l2
                - put_16aligned_be32
                - ntohs
                - htonl
                - pkt_metadata_init_conn
                - is_mpls
                - set_ethertype
                - dp_packet_resize_l2_5
            - BranchSide:      'lib/packets.c:428,10'
              BranchSideFuncs:
                - dp_packet_resize_l2
                - put_16aligned_be32
                - ntohs
                - htonl
                - pkt_metadata_init_conn
                - is_mpls
                - set_ethertype
                - dp_packet_resize_l2_5
        - Branch String:   'lib/packets.c:428,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:429,55'
              BranchSideFuncs:
                - is_mpls
                - set_ethertype
                - dp_packet_resize_l2_5
                - pkt_metadata_init_conn
            - BranchSide:      'lib/packets.c:439,22'
              BranchSideFuncs:
                - is_mpls
                - set_ethertype
                - dp_packet_resize_l2_5
                - pkt_metadata_init_conn
        - Branch String:   'lib/packets.c:439,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:441,32'
              BranchSideFuncs:
                - set_ethertype
                - dp_packet_resize_l2_5
                - pkt_metadata_init_conn
            - BranchSide:      'lib/packets.c:443,23'
              BranchSideFuncs:
                - set_ethertype
                - dp_packet_resize_l2_5
                - pkt_metadata_init_conn
      Callsites:
        - Src:             'lib/packets.c:424,10'
          Dst:             eth_type_mpls
        - Src:             'lib/packets.c:429,35'
          Dst:             dp_packet_resize_l2
        - Src:             'lib/packets.c:431,9'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:433,31'
          Dst:             ntohs
        - Src:             'lib/packets.c:433,31'
          Dst:             htonl
        - Src:             'lib/packets.c:439,14'
          Dst:             is_mpls
        - Src:             'lib/packets.c:443,9'
          Dst:             set_ethertype
        - Src:             'lib/packets.c:447,18'
          Dst:             dp_packet_resize_l2_5
        - Src:             'lib/packets.c:451,5'
          Dst:             pkt_metadata_init_conn
    - functionName:    eth_type_mpls
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 425
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - eth_type
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - htons
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/packets.h:424,45'
          Branch Sides:
            - BranchSide:      'lib/packets.h:424,45'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.h:425,9'
              BranchSideFuncs:
                - htons
      Callsites:
        - Src:             'lib/packets.h:424,24'
          Dst:             htons
        - Src:             'lib/packets.h:425,21'
          Dst:             htons
    - functionName:    push_mpls
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 396
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - int
      constantsTouched: []
      argNames:
        - packet
        - ethtype
        - lse
      BBCount:         9
      ICount:          72
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dp_packet_resize_l2_5
        - eth_type_mpls
        - is_mpls
        - pkt_metadata_init_conn
        - set_ethertype
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:400,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:401,9'
              BranchSideFuncs:
                - is_mpls
                - set_ethertype
                - dp_packet_resize_l2_5
                - pkt_metadata_init_conn
            - BranchSide:      'lib/packets.c:404,18'
              BranchSideFuncs:
                - is_mpls
                - set_ethertype
                - dp_packet_resize_l2_5
                - pkt_metadata_init_conn
        - Branch String:   'lib/packets.c:404,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:406,28'
              BranchSideFuncs:
                - set_ethertype
                - dp_packet_resize_l2_5
                - pkt_metadata_init_conn
            - BranchSide:      'lib/packets.c:409,19'
              BranchSideFuncs:
                - set_ethertype
                - dp_packet_resize_l2_5
                - pkt_metadata_init_conn
      Callsites:
        - Src:             'lib/packets.c:400,10'
          Dst:             eth_type_mpls
        - Src:             'lib/packets.c:404,10'
          Dst:             is_mpls
        - Src:             'lib/packets.c:409,5'
          Dst:             set_ethertype
        - Src:             'lib/packets.c:413,14'
          Dst:             dp_packet_resize_l2_5
        - Src:             'lib/packets.c:417,5'
          Dst:             pkt_metadata_init_conn
    - functionName:    set_mpls_lse
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - packet
        - mpls_lse
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_l2_5
        - is_mpls
        - put_16aligned_be32
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:383,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:383,9'
              BranchSideFuncs:
                - dp_packet_l2_5
                - put_16aligned_be32
            - BranchSide:      'lib/packets.c:384,46'
              BranchSideFuncs:
                - dp_packet_l2_5
                - put_16aligned_be32
      Callsites:
        - Src:             'lib/packets.c:383,9'
          Dst:             is_mpls
        - Src:             'lib/packets.c:384,31'
          Dst:             dp_packet_l2_5
        - Src:             'lib/packets.c:387,9'
          Dst:             put_16aligned_be32
    - functionName:    set_mpls_lse_values
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 375
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - char
        - char
        - char
        - int
      constantsTouched: []
      argNames:
        - ttl
        - tc
        - bos
        - label
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htonl
        - set_mpls_lse_bos
        - set_mpls_lse_label
        - set_mpls_lse_tc
        - set_mpls_lse_ttl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:370,20'
          Dst:             htonl
        - Src:             'lib/packets.c:371,5'
          Dst:             set_mpls_lse_ttl
        - Src:             'lib/packets.c:372,5'
          Dst:             set_mpls_lse_tc
        - Src:             'lib/packets.c:373,5'
          Dst:             set_mpls_lse_bos
        - Src:             'lib/packets.c:374,5'
          Dst:             set_mpls_lse_label
    - functionName:    set_mpls_lse_ttl
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - lse
        - ttl
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htonl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:336,14'
          Dst:             htonl
        - Src:             'lib/packets.c:337,13'
          Dst:             htonl
    - functionName:    set_mpls_lse_tc
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 346
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - lse
        - tc
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htonl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:344,14'
          Dst:             htonl
        - Src:             'lib/packets.c:345,13'
          Dst:             htonl
    - functionName:    set_mpls_lse_bos
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - lse
        - bos
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htonl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:360,14'
          Dst:             htonl
        - Src:             'lib/packets.c:361,13'
          Dst:             htonl
    - functionName:    set_mpls_lse_label
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lse
        - label
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htonl
        - ntohl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:352,14'
          Dst:             htonl
        - Src:             'lib/packets.c:353,20'
          Dst:             ntohl
        - Src:             'lib/packets.c:353,13'
          Dst:             htonl
    - functionName:    pop_eth
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 303
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - packet
      BBCount:         6
      ICount:          74
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_is_eth
        - dp_packet_l2_5
        - dp_packet_l3
        - dp_packet_resize_l2
        - htonl
        - ntohs
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:293,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:294,21'
              BranchSideFuncs:
                - dp_packet_resize_l2
                - ntohs
                - htonl
            - BranchSide:      'lib/packets.c:297,21'
              BranchSideFuncs:
                - dp_packet_resize_l2
                - ntohs
                - htonl
      Callsites:
        - Src:             'lib/packets.c:285,18'
          Dst:             dp_packet_l2_5
        - Src:             'lib/packets.c:286,16'
          Dst:             dp_packet_l3
        - Src:             'lib/packets.c:290,5'
          Dst:             dp_packet_is_eth
        - Src:             'lib/packets.c:301,5'
          Dst:             dp_packet_resize_l2
        - Src:             'lib/packets.c:302,27'
          Dst:             ntohs
        - Src:             'lib/packets.c:302,27'
          Dst:             htonl
    - functionName:    pt_ns_type_be
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1570
      functionLinenumberEnd: 1571
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - packet_type
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - be32_to_be16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.h:1571,12'
          Dst:             be32_to_be16
    - functionName:    push_eth
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - packet
        - dst
        - src
      BBCount:         3
      ICount:          48
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_is_eth
        - dp_packet_resize_l2
        - htonl
        - pt_ns_type_be
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:271,5'
          Dst:             dp_packet_is_eth
        - Src:             'lib/packets.c:272,10'
          Dst:             dp_packet_resize_l2
        - Src:             'lib/packets.c:275,20'
          Dst:             pt_ns_type_be
        - Src:             'lib/packets.c:276,27'
          Dst:             htonl
    - functionName:    eth_pop_vlan
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 253
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - packet
      BBCount:         10
      ICount:          55
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - dp_packet_eth
        - dp_packet_resize_l2
        - dp_packet_size
        - eth_type_vlan
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:256,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:256,31'
              BranchSideFuncs:
                - dp_packet_size
                - eth_type_vlan
                - dp_packet_resize_l2
            - BranchSide:      'lib/packets.c:256,13'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:257,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:257,26'
              BranchSideFuncs:
                - eth_type_vlan
                - dp_packet_resize_l2
            - BranchSide:      'lib/packets.c:257,9'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:256,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:256,9'
              BranchSideFuncs:
                - dp_packet_resize_l2
            - BranchSide:      'lib/packets.c:259,25'
              BranchSideFuncs:
                - dp_packet_resize_l2
      Callsites:
        - Src:             'lib/packets.c:254,35'
          Dst:             dp_packet_eth
        - Src:             'lib/packets.c:256,16'
          Dst:             dp_packet_size
        - Src:             'lib/packets.c:257,12'
          Dst:             eth_type_vlan
        - Src:             'lib/packets.c:260,9'
          Dst:             dp_packet_resize_l2
    - functionName:    eth_push_vlan
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - packet
        - tpid
        - tci
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_resize_l2
        - htons
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:241,11'
          Dst:             dp_packet_resize_l2
        - Src:             'lib/packets.c:244,27'
          Dst:             htons
    - functionName:    compose_rarp
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 203
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
        - eth_src
      BBCount:         3
      ICount:          86
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_clear
        - dp_packet_prealloc_tailroom
        - dp_packet_put_uninit
        - dp_packet_reserve
        - dp_packet_set_l3
        - htonl
        - htons
        - put_16aligned_be32
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:207,5'
          Dst:             dp_packet_clear
        - Src:             'lib/packets.c:208,5'
          Dst:             dp_packet_prealloc_tailroom
        - Src:             'lib/packets.c:210,5'
          Dst:             dp_packet_reserve
        - Src:             'lib/packets.c:211,11'
          Dst:             dp_packet_put_uninit
        - Src:             'lib/packets.c:214,21'
          Dst:             htons
        - Src:             'lib/packets.c:216,11'
          Dst:             dp_packet_put_uninit
        - Src:             'lib/packets.c:217,19'
          Dst:             htons
        - Src:             'lib/packets.c:218,19'
          Dst:             htons
        - Src:             'lib/packets.c:221,18'
          Dst:             htons
        - Src:             'lib/packets.c:223,38'
          Dst:             htonl
        - Src:             'lib/packets.c:223,5'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:225,38'
          Dst:             htonl
        - Src:             'lib/packets.c:225,5'
          Dst:             put_16aligned_be32
        - Src:             'lib/packets.c:227,5'
          Dst:             dp_packet_set_l3
        - Src:             'lib/packets.c:228,22'
          Dst:             htonl
    - functionName:    eth_addr_from_string
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - ea
      BBCount:         9
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ovs_scan
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:187,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:187,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:190,10'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:186,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:188,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:190,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/packets.c:186,9'
          Dst:             ovs_scan
    - functionName:    hmap_next_in_bucket
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 381
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - node
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_first_in_bucket
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 368
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - hash
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hash_uint64
      functionSourceFile: '/src/openvswitch/lib/hash.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - x
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_uint64_basis
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/hash.h:165,12'
          Dst:             hash_uint64_basis
    - functionName:    hmap_insert_at
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
        - hash
        - where
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_expand_at
        - hmap_insert_fast
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:308,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:308,9'
              BranchSideFuncs:
                - hmap_expand_at
            - BranchSide:      './include/openvswitch/hmap.h:309,24'
              BranchSideFuncs:
                - hmap_expand_at
      Callsites:
        - Src:             './include/openvswitch/hmap.h:307,5'
          Dst:             hmap_insert_fast
        - Src:             './include/openvswitch/hmap.h:309,9'
          Dst:             hmap_expand_at
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - once
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/thread.h:161,12'
          Branch Sides:
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs:
                - ovsthread_once_start__
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    eth_addr_is_reserved
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ea
      BBCount:         20
      ICount:          116
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - eth_addr_to_uint64
        - hash_uint64
        - hmap_first_in_bucket
        - hmap_init
        - hmap_insert_at
        - hmap_next_in_bucket
        - ovsthread_once_done
        - ovsthread_once_start
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:162,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:163,9'
              BranchSideFuncs:
                - hmap_init
                - ovsthread_once_done
                - eth_addr_to_uint64
                - hash_uint64
                - hmap_first_in_bucket.4278
                - hmap_next_in_bucket.4277
                - hash_uint64
                - hmap_insert_at.4279
            - BranchSide:      'lib/packets.c:170,12'
              BranchSideFuncs:
                - eth_addr_to_uint64
                - hash_uint64
                - hmap_first_in_bucket.4278
                - hmap_next_in_bucket.4277
        - Branch String:   'lib/packets.c:164,9'
          Branch Sides:
            - BranchSide:      'lib/packets.c:165,13'
              BranchSideFuncs:
                - hash_uint64
                - hmap_insert_at.4279
                - ovsthread_once_done
                - eth_addr_to_uint64
                - hash_uint64
                - hmap_first_in_bucket.4278
                - hmap_next_in_bucket.4277
            - BranchSide:      'lib/packets.c:167,9'
              BranchSideFuncs:
                - ovsthread_once_done
                - eth_addr_to_uint64
                - hash_uint64
                - hmap_first_in_bucket.4278
                - hmap_next_in_bucket.4277
        - Branch String:   'lib/packets.c:171,5'
          Branch Sides:
            - BranchSide:      'lib/packets.c:171,5'
              BranchSideFuncs:
                - hmap_next_in_bucket.4277
            - BranchSide:      'lib/packets.c:171,5'
              BranchSideFuncs:
                - hmap_next_in_bucket.4277
        - Branch String:   'lib/packets.c:171,5'
          Branch Sides:
            - BranchSide:      'lib/packets.c:172,13'
              BranchSideFuncs:
                - hmap_next_in_bucket.4277
            - BranchSide:      'lib/packets.c:176,5'
              BranchSideFuncs: []
        - Branch String:   'lib/packets.c:172,13'
          Branch Sides:
            - BranchSide:      'lib/packets.c:173,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/packets.c:175,5'
              BranchSideFuncs:
                - hmap_next_in_bucket.4277
      Callsites:
        - Src:             'lib/packets.c:162,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/packets.c:163,9'
          Dst:             hmap_init
        - Src:             'lib/packets.c:165,13'
          Dst:             hash_uint64
        - Src:             'lib/packets.c:165,13'
          Dst:             hmap_insert_at
        - Src:             'lib/packets.c:167,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/packets.c:170,12'
          Dst:             eth_addr_to_uint64
        - Src:             'lib/packets.c:171,5'
          Dst:             hash_uint64
        - Src:             'lib/packets.c:171,5'
          Dst:             hmap_first_in_bucket
        - Src:             'lib/packets.c:171,5'
          Dst:             hmap_next_in_bucket
    - functionName:    eth_addr_to_uint64
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ea
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ntohs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:81,25'
          Dst:             ntohs
        - Src:             'lib/packets.c:82,27'
          Dst:             ntohs
        - Src:             'lib/packets.c:83,15'
          Dst:             ntohs
    - functionName:    eth_addr_mark_random
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ea
      BBCount:         1
      ICount:          23
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    eth_addr_from_uint64
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - x
        - ea
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htons
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:89,19'
          Dst:             htons
        - Src:             'lib/packets.c:90,19'
          Dst:             htons
        - Src:             'lib/packets.c:91,19'
          Dst:             htons
    - functionName:    is_all_hex
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strspn
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/packets.c:58,14'
          Dst:             strspn
    - functionName:    dpid_from_string
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - dpidp
      BBCount:         22
      ICount:          109
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - is_all_hex
        - strlen
        - strtoull
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:70,26'
          Branch Sides:
            - BranchSide:      'lib/packets.c:70,40'
              BranchSideFuncs:
                - is_all_hex
                - is_all_hex
                - strtoull
            - BranchSide:      'lib/packets.c:71,19'
              BranchSideFuncs:
                - is_all_hex
                - strtoull
        - Branch String:   'lib/packets.c:71,15'
          Branch Sides:
            - BranchSide:      'lib/packets.c:71,19'
              BranchSideFuncs:
                - strtoull
            - BranchSide:      'lib/packets.c:73,26'
              BranchSideFuncs:
                - strtoull
        - Branch String:   'lib/packets.c:71,29'
          Branch Sides:
            - BranchSide:      'lib/packets.c:70,15'
              BranchSideFuncs:
                - is_all_hex
                - strtoull
            - BranchSide:      'lib/packets.c:71,32'
              BranchSideFuncs:
                - is_all_hex
                - strtoull
        - Branch String:   'lib/packets.c:71,44'
          Branch Sides:
            - BranchSide:      'lib/packets.c:70,15'
              BranchSideFuncs:
                - is_all_hex
                - strtoull
            - BranchSide:      'lib/packets.c:71,48'
              BranchSideFuncs:
                - is_all_hex
                - strtoull
        - Branch String:   'lib/packets.c:71,60'
          Branch Sides:
            - BranchSide:      'lib/packets.c:71,63'
              BranchSideFuncs:
                - is_all_hex
                - strtoull
            - BranchSide:      'lib/packets.c:72,33'
              BranchSideFuncs:
                - is_all_hex
                - strtoull
        - Branch String:   'lib/packets.c:72,19'
          Branch Sides:
            - BranchSide:      'lib/packets.c:70,15'
              BranchSideFuncs:
                - is_all_hex
                - strtoull
            - BranchSide:      'lib/packets.c:72,33'
              BranchSideFuncs:
                - is_all_hex
                - strtoull
        - Branch String:   'lib/packets.c:70,15'
          Branch Sides:
            - BranchSide:      'lib/packets.c:70,15'
              BranchSideFuncs:
                - strtoull
            - BranchSide:      'lib/packets.c:73,26'
              BranchSideFuncs:
                - strtoull
      Callsites:
        - Src:             'lib/packets.c:69,18'
          Dst:             strlen
        - Src:             'lib/packets.c:70,29'
          Dst:             is_all_hex
        - Src:             'lib/packets.c:72,22'
          Dst:             is_all_hex
        - Src:             'lib/packets.c:73,17'
          Dst:             strtoull
    - functionName:    flow_tnl_src
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - tnl
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - in6_addr_mapped_ipv4
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:51,12'
          Branch Sides:
            - BranchSide:      'lib/packets.c:51,47'
              BranchSideFuncs:
                - in6_addr_mapped_ipv4.4284
            - BranchSide:      'lib/packets.c:51,62'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/packets.c:51,26'
          Dst:             in6_addr_mapped_ipv4
    - functionName:    in6_addr_mapped_ipv4
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1208
      functionLinenumberEnd: 1213
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ip4
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    flow_tnl_dst
      functionSourceFile: '/src/openvswitch/lib/packets.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - tnl
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - in6_addr_mapped_ipv4
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/packets.c:45,12'
          Branch Sides:
            - BranchSide:      'lib/packets.c:45,47'
              BranchSideFuncs:
                - in6_addr_mapped_ipv4.4284
            - BranchSide:      'lib/packets.c:45,62'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/packets.c:45,26'
          Dst:             in6_addr_mapped_ipv4
    - functionName:    seed_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/random.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    random_uint64
      functionSourceFile: '/src/openvswitch/lib/random.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - random_init
        - random_next
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/random.c:102,5'
          Branch Sides:
            - BranchSide:      'lib/random.c:100,14'
              BranchSideFuncs:
                - random_init
                - random_next
                - random_next
            - BranchSide:      'lib/random.c:102,5'
              BranchSideFuncs:
                - random_init
                - random_next
                - random_next
      Callsites:
        - Src:             'lib/random.c:102,5'
          Dst:             random_init
        - Src:             'lib/random.c:104,9'
          Dst:             random_next
        - Src:             'lib/random.c:105,21'
          Dst:             random_next
    - functionName:    random_init
      functionSourceFile: '/src/openvswitch/lib/random.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          53
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - get_entropy_or_die
        - hash_bytes
        - pthread_self
        - seed_get
        - xgettimeofday
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/random.c:49,23'
          Branch Sides:
            - BranchSide:      'lib/random.c:49,15'
              BranchSideFuncs:
                - seed_get
                - xgettimeofday
                - get_entropy_or_die
                - pthread_self
                - hash_bytes
            - BranchSide:      'lib/random.c:50,14'
              BranchSideFuncs:
                - seed_get
                - xgettimeofday
                - get_entropy_or_die
                - pthread_self
                - hash_bytes
        - Branch String:   'lib/random.c:50,5'
          Branch Sides:
            - BranchSide:      'lib/random.c:55,9'
              BranchSideFuncs:
                - xgettimeofday
                - get_entropy_or_die
                - pthread_self
                - hash_bytes
            - BranchSide:      'lib/random.c:62,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/random.c:49,23'
          Dst:             seed_get
        - Src:             'lib/random.c:55,9'
          Dst:             xgettimeofday
        - Src:             'lib/random.c:56,9'
          Dst:             get_entropy_or_die
        - Src:             'lib/random.c:57,16'
          Dst:             pthread_self
        - Src:             'lib/random.c:60,21'
          Dst:             hash_bytes
    - functionName:    random_next
      functionSourceFile: '/src/openvswitch/lib/random.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - seed_get_unsafe
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/random.c:112,23'
          Branch Sides:
            - BranchSide:      'lib/random.c:112,15'
              BranchSideFuncs:
                - seed_get_unsafe
            - BranchSide:      'lib/random.c:112,23'
              BranchSideFuncs:
                - seed_get_unsafe
      Callsites:
        - Src:             'lib/random.c:112,23'
          Dst:             seed_get_unsafe
    - functionName:    seed_get
      functionSourceFile: '/src/openvswitch/lib/random.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - seed_get_unsafe
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/random.c:42,1'
          Branch Sides:
            - BranchSide:      'lib/random.c:42,1'
              BranchSideFuncs:
                - seed_get_unsafe
            - BranchSide:      'lib/random.c:42,1'
              BranchSideFuncs:
                - seed_get_unsafe
      Callsites:
        - Src:             'lib/random.c:42,1'
          Dst:             seed_get_unsafe
    - functionName:    random_uint32
      functionSourceFile: '/src/openvswitch/lib/random.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - random_init
        - random_next
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/random.c:93,5'
          Branch Sides:
            - BranchSide:      'lib/random.c:93,5'
              BranchSideFuncs:
                - random_init
                - random_next
            - BranchSide:      'lib/random.c:93,5'
              BranchSideFuncs:
                - random_init
                - random_next
      Callsites:
        - Src:             'lib/random.c:93,5'
          Dst:             random_init
        - Src:             'lib/random.c:94,12'
          Dst:             random_next
    - functionName:    random_bytes
      functionSourceFile: '/src/openvswitch/lib/random.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - p_
        - n
      BBCount:         10
      ICount:          63
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - random_init
        - random_next
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/random.c:78,5'
          Branch Sides:
            - BranchSide:      'lib/random.c:79,22'
              BranchSideFuncs:
                - random_next
                - random_next
            - BranchSide:      'lib/random.c:83,9'
              BranchSideFuncs:
                - random_next
        - Branch String:   'lib/random.c:83,9'
          Branch Sides:
            - BranchSide:      'lib/random.c:83,9'
              BranchSideFuncs:
                - random_next
            - BranchSide:      'lib/random.c:84,22'
              BranchSideFuncs:
                - random_next
      Callsites:
        - Src:             'lib/random.c:76,5'
          Dst:             random_init
        - Src:             'lib/random.c:79,22'
          Dst:             random_next
        - Src:             'lib/random.c:84,22'
          Dst:             random_next
    - functionName:    random_set_seed
      functionSourceFile: '/src/openvswitch/lib/random.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - seed_
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - seed_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/random.c:68,6'
          Dst:             seed_get
    - functionName:    hmap_next_with_hash__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - node
        - hash
      BBCount:         7
      ICount:          42
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:349,25'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:349,28'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:349,5'
              BranchSideFuncs: []
        - Branch String:   './include/openvswitch/hmap.h:349,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:350,16'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:352,12'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    hmap_next_with_hash
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - node
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next_with_hash__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:396,12'
          Dst:             hmap_next_with_hash__
    - functionName:    hmap_first_with_hash
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - hash
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next_with_hash__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:360,12'
          Dst:             hmap_next_with_hash__
    - functionName:    hmap_insert_fast
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - node
        - hash
      BBCount:         1
      ICount:          42
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_insert_at
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
        - hash
        - where
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_expand_at
        - hmap_insert_fast
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:308,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:308,9'
              BranchSideFuncs:
                - hmap_expand_at
            - BranchSide:      './include/openvswitch/hmap.h:309,24'
              BranchSideFuncs:
                - hmap_expand_at
      Callsites:
        - Src:             './include/openvswitch/hmap.h:307,5'
          Dst:             hmap_insert_fast
        - Src:             './include/openvswitch/hmap.h:309,9'
          Dst:             hmap_expand_at
    - functionName:    hmap_next__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - start
      BBCount:         8
      ICount:          55
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:403,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:404,34'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:409,5'
              BranchSideFuncs: []
        - Branch String:   './include/openvswitch/hmap.h:405,13'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:406,20'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:408,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    compare_string_pointers
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a_
        - b_
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:370,12'
          Dst:             strcmp
    - functionName:    sset_array
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 347
      functionLinenumberEnd: 361
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
      BBCount:         13
      ICount:          105
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - hmap_first
        - hmap_next
        - sset_count
        - xmalloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/sset.c:355,5'
          Branch Sides:
            - BranchSide:      'lib/sset.c:355,5'
              BranchSideFuncs:
                - hmap_next.4400
                - hmap_next.4400
            - BranchSide:      'lib/sset.c:355,5'
              BranchSideFuncs:
                - hmap_first.4399
                - hmap_next.4400
                - hmap_next.4400
        - Branch String:   'lib/sset.c:355,5'
          Branch Sides:
            - BranchSide:      'lib/sset.c:356,22'
              BranchSideFuncs:
                - hmap_next.4400
                - hmap_next.4400
            - BranchSide:      'lib/sset.c:358,5'
              BranchSideFuncs: []
        - Branch String:   'lib/sset.c:355,5'
          Branch Sides:
            - BranchSide:      'lib/sset.c:355,5'
              BranchSideFuncs:
                - hmap_next.4400
                - hmap_next.4400
            - BranchSide:      'lib/sset.c:355,5'
              BranchSideFuncs:
                - hmap_next.4400
                - hmap_next.4400
      Callsites:
        - Src:             'lib/sset.c:348,16'
          Dst:             sset_count
        - Src:             'lib/sset.c:353,13'
          Dst:             xmalloc
        - Src:             'lib/sset.c:355,5'
          Dst:             hmap_first
        - Src:             'lib/sset.c:355,5'
          Dst:             hmap_first
        - Src:             'lib/sset.c:355,5'
          Dst:             hmap_next
        - Src:             'lib/sset.c:355,5'
          Dst:             hmap_next
    - functionName:    sset_count
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_count
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:166,12'
          Dst:             hmap_count
    - functionName:    hmap_first
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next__
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:417,12'
          Dst:             hmap_next__
    - functionName:    hmap_next
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_next__
      functionUses:    8
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:430,13'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:431,15'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:432,27'
              BranchSideFuncs:
                - hmap_next__.4398
      Callsites:
        - Src:             './include/openvswitch/hmap.h:432,15'
          Dst:             hmap_next__
    - functionName:    hmap_count
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sset_intersect
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 339
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         19
      ICount:          110
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - hmap_first
        - hmap_next
        - sset_contains
        - sset_delete
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/sset.c:334,5'
          Branch Sides:
            - BranchSide:      'lib/sset.c:334,5'
              BranchSideFuncs:
                - sset_contains
                - sset_delete
                - hmap_next.4400
                - hmap_next.4400
            - BranchSide:      'lib/sset.c:334,5'
              BranchSideFuncs:
                - hmap_first.4399
                - sset_contains
                - sset_delete
                - hmap_next.4400
                - hmap_next.4400
        - Branch String:   'lib/sset.c:334,5'
          Branch Sides:
            - BranchSide:      'lib/sset.c:334,5'
              BranchSideFuncs:
                - hmap_next.4400
                - hmap_next.4400
                - sset_contains
                - sset_delete
            - BranchSide:      'lib/sset.c:334,5'
              BranchSideFuncs:
                - sset_contains
                - sset_delete
                - hmap_next.4400
                - hmap_next.4400
        - Branch String:   'lib/sset.c:334,5'
          Branch Sides:
            - BranchSide:      'lib/sset.c:334,5'
              BranchSideFuncs:
                - sset_contains
                - sset_delete
                - hmap_next.4400
                - hmap_next.4400
            - BranchSide:      'lib/sset.c:334,5'
              BranchSideFuncs:
                - hmap_next.4400
                - sset_contains
                - sset_delete
                - hmap_next.4400
        - Branch String:   'lib/sset.c:334,5'
          Branch Sides:
            - BranchSide:      'lib/sset.c:335,28'
              BranchSideFuncs:
                - sset_contains
                - sset_delete
                - hmap_next.4400
                - hmap_next.4400
            - BranchSide:      'lib/sset.c:339,1'
              BranchSideFuncs: []
        - Branch String:   'lib/sset.c:335,13'
          Branch Sides:
            - BranchSide:      'lib/sset.c:336,25'
              BranchSideFuncs:
                - sset_contains
                - sset_delete
                - hmap_next.4400
                - hmap_next.4400
            - BranchSide:      'lib/sset.c:338,5'
              BranchSideFuncs:
                - sset_contains
                - sset_delete
                - hmap_next.4400
                - hmap_next.4400
      Callsites:
        - Src:             'lib/sset.c:334,5'
          Dst:             hmap_first
        - Src:             'lib/sset.c:334,5'
          Dst:             hmap_first
        - Src:             'lib/sset.c:334,5'
          Dst:             hmap_next
        - Src:             'lib/sset.c:334,5'
          Dst:             hmap_next
        - Src:             'lib/sset.c:335,14'
          Dst:             sset_contains
        - Src:             'lib/sset.c:336,13'
          Dst:             sset_delete
    - functionName:    sset_contains
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
        - name
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sset_find
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:286,12'
          Dst:             sset_find
    - functionName:    sset_delete
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
        - node
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_remove
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:228,5'
          Dst:             hmap_remove
    - functionName:    hmap_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
      BBCount:         4
      ICount:          51
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:319,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:320,21'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:322,15'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    sset_find
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 279
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
        - name
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_name
        - sset_find__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:279,35'
          Dst:             hash_name
        - Src:             'lib/sset.c:279,12'
          Dst:             sset_find__
    - functionName:    hash_name
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_name__
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:33,30'
          Dst:             strlen
        - Src:             'lib/sset.c:33,12'
          Dst:             hash_name__
    - functionName:    sset_find__
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - set
        - name
        - hash
      BBCount:         13
      ICount:          78
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - hmap_first_with_hash
        - hmap_next_with_hash
        - strcmp
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/sset.c:41,5'
          Branch Sides:
            - BranchSide:      'lib/sset.c:41,5'
              BranchSideFuncs:
                - strcmp
                - hmap_next_with_hash.4394
            - BranchSide:      'lib/sset.c:41,5'
              BranchSideFuncs:
                - strcmp
                - hmap_next_with_hash.4394
        - Branch String:   'lib/sset.c:41,5'
          Branch Sides:
            - BranchSide:      'lib/sset.c:42,21'
              BranchSideFuncs:
                - strcmp
                - hmap_next_with_hash.4394
            - BranchSide:      'lib/sset.c:46,5'
              BranchSideFuncs: []
        - Branch String:   'lib/sset.c:42,13'
          Branch Sides:
            - BranchSide:      'lib/sset.c:43,20'
              BranchSideFuncs:
                - hmap_next_with_hash.4394
                - strcmp
            - BranchSide:      'lib/sset.c:45,5'
              BranchSideFuncs:
                - hmap_next_with_hash.4394
                - strcmp
      Callsites:
        - Src:             'lib/sset.c:41,5'
          Dst:             hmap_first_with_hash
        - Src:             'lib/sset.c:42,14'
          Dst:             strcmp
        - Src:             'lib/sset.c:41,5'
          Dst:             hmap_next_with_hash
    - functionName:    hash_name__
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - name
        - length
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_bytes
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:27,12'
          Dst:             hash_bytes
    - functionName:    sset_at_position
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
        - pos
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_at_position
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/sset.c:322,12'
          Branch Sides:
            - BranchSide:      'lib/sset.c:322,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/sset.c:323,14'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/sset.c:321,17'
          Dst:             hmap_at_position
    - functionName:    sset_equals
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         15
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - hmap_first
        - hmap_next
        - sset_count
        - sset_find__
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/sset.c:295,9'
          Branch Sides:
            - BranchSide:      'lib/sset.c:296,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/sset.c:299,5'
              BranchSideFuncs:
                - hmap_first.4399
                - sset_find__
                - hmap_next.4400
        - Branch String:   'lib/sset.c:299,5'
          Branch Sides:
            - BranchSide:      'lib/sset.c:299,5'
              BranchSideFuncs:
                - sset_find__
                - hmap_next.4400
            - BranchSide:      'lib/sset.c:299,5'
              BranchSideFuncs:
                - sset_find__
                - hmap_next.4400
        - Branch String:   'lib/sset.c:299,5'
          Branch Sides:
            - BranchSide:      'lib/sset.c:300,26'
              BranchSideFuncs:
                - sset_find__
                - hmap_next.4400
            - BranchSide:      'lib/sset.c:305,5'
              BranchSideFuncs: []
        - Branch String:   'lib/sset.c:300,13'
          Branch Sides:
            - BranchSide:      'lib/sset.c:301,13'
              BranchSideFuncs:
                - hmap_next.4400
                - sset_find__
            - BranchSide:      'lib/sset.c:303,5'
              BranchSideFuncs:
                - hmap_next.4400
                - sset_find__
      Callsites:
        - Src:             'lib/sset.c:295,9'
          Dst:             sset_count
        - Src:             'lib/sset.c:295,26'
          Dst:             sset_count
        - Src:             'lib/sset.c:299,5'
          Dst:             hmap_first
        - Src:             'lib/sset.c:300,14'
          Dst:             sset_find__
        - Src:             'lib/sset.c:299,5'
          Dst:             hmap_next
    - functionName:    sset_pop
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - hmap_first
        - sset_delete
        - xstrdup
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/sset.c:263,24'
          Branch Sides:
            - BranchSide:      'lib/sset.c:263,17'
              BranchSideFuncs:
                - xstrdup
                - sset_delete
            - BranchSide:      'lib/sset.c:263,17'
              BranchSideFuncs:
                - hmap_first.4399
                - xstrdup
                - sset_delete
        - Branch String:   'lib/sset.c:265,9'
          Branch Sides:
            - BranchSide:      'lib/sset.c:266,9'
              BranchSideFuncs:
                - xstrdup
                - sset_delete
            - BranchSide:      'lib/sset.c:269,26'
              BranchSideFuncs:
                - xstrdup
                - sset_delete
      Callsites:
        - Src:             'lib/sset.c:263,24'
          Dst:             hmap_first
        - Src:             'lib/sset.c:263,24'
          Dst:             hmap_first
        - Src:             'lib/sset.c:269,18'
          Dst:             xstrdup
        - Src:             'lib/sset.c:270,5'
          Dst:             sset_delete
    - functionName:    sset_find_and_delete_assert
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
        - name
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sset_find_and_delete
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:249,5'
          Dst:             sset_find_and_delete
    - functionName:    sset_find_and_delete
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
        - name
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sset_delete
        - sset_find
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/sset.c:238,9'
          Branch Sides:
            - BranchSide:      'lib/sset.c:238,9'
              BranchSideFuncs:
                - sset_delete
            - BranchSide:      'lib/sset.c:239,21'
              BranchSideFuncs:
                - sset_delete
      Callsites:
        - Src:             'lib/sset.c:237,30'
          Dst:             sset_find
        - Src:             'lib/sset.c:239,9'
          Dst:             sset_delete
    - functionName:    sset_add_array
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - set
        - names
        - n
      BBCount:         7
      ICount:          46
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - sset_add
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/sset.c:208,5'
          Branch Sides:
            - BranchSide:      'lib/sset.c:209,18'
              BranchSideFuncs:
                - sset_add
            - BranchSide:      'lib/sset.c:211,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/sset.c:209,9'
          Dst:             sset_add
    - functionName:    sset_add
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
        - name
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hash_name__
        - sset_add__
        - sset_find__
        - strlen
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/sset.c:177,13'
          Branch Sides:
            - BranchSide:      'lib/sset.c:177,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/sset.c:179,26'
              BranchSideFuncs:
                - sset_add__
      Callsites:
        - Src:             'lib/sset.c:174,21'
          Dst:             strlen
        - Src:             'lib/sset.c:175,21'
          Dst:             hash_name__
        - Src:             'lib/sset.c:177,13'
          Dst:             sset_find__
        - Src:             'lib/sset.c:179,15'
          Dst:             sset_add__
    - functionName:    sset_add__
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - set
        - name
        - length
        - hash
      BBCount:         3
      ICount:          43
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_insert_at
        - xmalloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:52,30'
          Dst:             xmalloc
        - Src:             'lib/sset.c:54,5'
          Dst:             hmap_insert_at
    - functionName:    sset_add_assert
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
        - name
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sset_add
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:199,5'
          Dst:             sset_add
    - functionName:    sset_add_and_free
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
        - name
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sset_add
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:189,30'
          Dst:             sset_add
    - functionName:    hmap_is_empty
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sset_is_empty
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 158
      functionLinenumberEnd: 159
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_is_empty
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:159,12'
          Dst:             hmap_is_empty
    - functionName:    sset_sort
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - compare_string_pointers
        - qsort
        - sset_array
        - sset_count
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:380,26'
          Dst:             sset_array
        - Src:             'lib/sset.c:381,18'
          Dst:             sset_count
        - Src:             'lib/sset.c:381,5'
          Dst:             qsort
        - Src:             'lib/sset.c:381,5'
          Dst:             compare_string_pointers
    - functionName:    sset_join
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sset
        - delimiter
        - terminator
      BBCount:         10
      ICount:          73
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - ds_put_cstr
        - ds_steal_cstr
        - sset_count
        - sset_sort
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/sset.c:141,5'
          Branch Sides:
            - BranchSide:      'lib/sset.c:142,13'
              BranchSideFuncs:
                - ds_put_cstr
                - sset_count
                - free
                - ds_put_cstr
                - ds_steal_cstr
                - ds_put_cstr
            - BranchSide:      'lib/sset.c:147,10'
              BranchSideFuncs:
                - free
                - ds_put_cstr
                - ds_steal_cstr
        - Branch String:   'lib/sset.c:142,13'
          Branch Sides:
            - BranchSide:      'lib/sset.c:143,29'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_put_cstr
                - sset_count
                - free
                - ds_put_cstr
                - ds_steal_cstr
            - BranchSide:      'lib/sset.c:145,25'
              BranchSideFuncs:
                - ds_put_cstr
                - sset_count
                - free
                - ds_put_cstr
                - ds_steal_cstr
                - ds_put_cstr
      Callsites:
        - Src:             'lib/sset.c:140,26'
          Dst:             sset_sort
        - Src:             'lib/sset.c:141,28'
          Dst:             sset_count
        - Src:             'lib/sset.c:143,13'
          Dst:             ds_put_cstr
        - Src:             'lib/sset.c:145,9'
          Dst:             ds_put_cstr
        - Src:             'lib/sset.c:149,5'
          Dst:             ds_put_cstr
        - Src:             'lib/sset.c:151,12'
          Dst:             ds_steal_cstr
    - functionName:    sset_from_delimited_string
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
        - s_
        - delimiters
      BBCount:         7
      ICount:          56
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - sset_add
        - sset_init
        - strtok_r
        - xstrdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/sset.c:117,5'
          Branch Sides:
            - BranchSide:      'lib/sset.c:119,18'
              BranchSideFuncs:
                - sset_add
                - strtok_r
                - free
            - BranchSide:      'lib/sset.c:121,10'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'lib/sset.c:113,5'
          Dst:             sset_init
        - Src:             'lib/sset.c:115,15'
          Dst:             xstrdup
        - Src:             'lib/sset.c:117,18'
          Dst:             strtok_r
        - Src:             'lib/sset.c:119,9'
          Dst:             sset_add
        - Src:             'lib/sset.c:118,18'
          Dst:             strtok_r
    - functionName:    sset_init
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:62,5'
          Dst:             hmap_init
    - functionName:    sset_moved
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_moved
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:102,5'
          Dst:             hmap_moved
    - functionName:    sset_swap
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_swap
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/sset.c:94,5'
          Dst:             hmap_swap
    - functionName:    sset_clone
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
        - orig
      BBCount:         10
      ICount:          78
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - hmap_first
        - hmap_next
        - hmap_reserve_at
        - sset_add__
        - sset_count
        - sset_init
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/sset.c:84,5'
          Branch Sides:
            - BranchSide:      'lib/sset.c:84,5'
              BranchSideFuncs:
                - strlen
                - sset_add__
                - hmap_next.4400
            - BranchSide:      'lib/sset.c:84,5'
              BranchSideFuncs:
                - strlen
                - sset_add__
                - hmap_next.4400
        - Branch String:   'lib/sset.c:84,5'
          Branch Sides:
            - BranchSide:      'lib/sset.c:85,20'
              BranchSideFuncs:
                - strlen
                - sset_add__
                - hmap_next.4400
            - BranchSide:      'lib/sset.c:88,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/sset.c:81,5'
          Dst:             sset_init
        - Src:             'lib/sset.c:82,5'
          Dst:             sset_count
        - Src:             'lib/sset.c:82,5'
          Dst:             hmap_reserve_at
        - Src:             'lib/sset.c:84,5'
          Dst:             hmap_first
        - Src:             'lib/sset.c:85,37'
          Dst:             strlen
        - Src:             'lib/sset.c:85,9'
          Dst:             sset_add__
        - Src:             'lib/sset.c:84,5'
          Dst:             hmap_next
    - functionName:    sset_clear
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
      BBCount:         16
      ICount:          95
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - hmap_first
        - hmap_next
        - sset_delete
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/sset.c:219,5'
          Branch Sides:
            - BranchSide:      'lib/sset.c:219,5'
              BranchSideFuncs:
                - sset_delete
                - hmap_next.4400
                - hmap_next.4400
            - BranchSide:      'lib/sset.c:219,5'
              BranchSideFuncs:
                - hmap_first.4399
                - sset_delete
                - hmap_next.4400
                - hmap_next.4400
        - Branch String:   'lib/sset.c:219,5'
          Branch Sides:
            - BranchSide:      'lib/sset.c:219,5'
              BranchSideFuncs:
                - hmap_next.4400
                - hmap_next.4400
                - sset_delete
            - BranchSide:      'lib/sset.c:219,5'
              BranchSideFuncs:
                - sset_delete
                - hmap_next.4400
                - hmap_next.4400
        - Branch String:   'lib/sset.c:219,5'
          Branch Sides:
            - BranchSide:      'lib/sset.c:219,5'
              BranchSideFuncs:
                - sset_delete
                - hmap_next.4400
                - hmap_next.4400
            - BranchSide:      'lib/sset.c:219,5'
              BranchSideFuncs:
                - hmap_next.4400
                - sset_delete
                - hmap_next.4400
        - Branch String:   'lib/sset.c:219,5'
          Branch Sides:
            - BranchSide:      'lib/sset.c:220,21'
              BranchSideFuncs:
                - sset_delete
                - hmap_next.4400
                - hmap_next.4400
            - BranchSide:      'lib/sset.c:222,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/sset.c:219,5'
          Dst:             hmap_first
        - Src:             'lib/sset.c:219,5'
          Dst:             hmap_first
        - Src:             'lib/sset.c:219,5'
          Dst:             hmap_next
        - Src:             'lib/sset.c:219,5'
          Dst:             hmap_next
        - Src:             'lib/sset.c:220,9'
          Dst:             sset_delete
    - functionName:    sset_destroy
      functionSourceFile: '/src/openvswitch/lib/sset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 68
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_destroy
        - sset_clear
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/sset.c:69,9'
          Branch Sides:
            - BranchSide:      'lib/sset.c:69,9'
              BranchSideFuncs:
                - sset_clear
                - hmap_destroy
            - BranchSide:      'lib/sset.c:70,20'
              BranchSideFuncs:
                - sset_clear
                - hmap_destroy
      Callsites:
        - Src:             'lib/sset.c:70,9'
          Dst:             sset_clear
        - Src:             'lib/sset.c:71,9'
          Dst:             hmap_destroy
    - functionName:    init_this_module_stream_fd
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-fd.c:34,1'
          Branch Sides:
            - BranchSide:      'lib/stream-fd.c:34,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/stream-fd.c:34,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/stream-fd.c:34,1'
          Dst:             vlog_insert_module
    - functionName:    pstream_assert_class
      functionSourceFile: '/src/openvswitch/lib/stream-provider.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
        - class
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    maybe_unlink_and_free
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 294
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - path
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fatal_signal_unlink_file_now
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-fd.c:290,9'
          Branch Sides:
            - BranchSide:      'lib/stream-fd.c:290,9'
              BranchSideFuncs:
                - fatal_signal_unlink_file_now
                - free
            - BranchSide:      'lib/stream-fd.c:291,38'
              BranchSideFuncs:
                - fatal_signal_unlink_file_now
                - free
      Callsites:
        - Src:             'lib/stream-fd.c:291,9'
          Dst:             fatal_signal_unlink_file_now
    - functionName:    fd_pstream_cast
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pstream_assert_class
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-fd.c:194,5'
          Dst:             pstream_assert_class
    - functionName:    pfd_close
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - close
        - fd_pstream_cast
        - maybe_unlink_and_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-fd.c:232,29'
          Dst:             fd_pstream_cast
        - Src:             'lib/stream-fd.c:233,5'
          Dst:             close
        - Src:             'lib/stream-fd.c:234,5'
          Dst:             maybe_unlink_and_free
    - functionName:    pfd_accept
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
        - new_streamp
      BBCount:         16
      ICount:          115
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - accept
        - close
        - fd_pstream_cast
        - set_nonblocking
        - sock_errno
        - sock_strerror
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-fd.c:248,9'
          Branch Sides:
            - BranchSide:      'lib/stream-fd.c:249,18'
              BranchSideFuncs:
                - sock_errno.4466
                - sock_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/stream-fd.c:261,30'
              BranchSideFuncs:
                - set_nonblocking
                - close
        - Branch String:   'lib/stream-fd.c:255,13'
          Branch Sides:
            - BranchSide:      'lib/stream-fd.c:256,13'
              BranchSideFuncs:
                - sock_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/stream-fd.c:258,16'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-fd.c:256,13'
          Branch Sides:
            - BranchSide:      'lib/stream-fd.c:256,13'
              BranchSideFuncs:
                - sock_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/stream-fd.c:257,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-fd.c:262,9'
          Branch Sides:
            - BranchSide:      'lib/stream-fd.c:263,21'
              BranchSideFuncs:
                - close
            - BranchSide:      'lib/stream-fd.c:267,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-fd.c:241,29'
          Dst:             fd_pstream_cast
        - Src:             'lib/stream-fd.c:247,14'
          Dst:             accept
        - Src:             'lib/stream-fd.c:249,18'
          Dst:             sock_errno
        - Src:             'lib/stream-fd.c:256,13'
          Dst:             sock_strerror
        - Src:             'lib/stream-fd.c:256,13'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-fd.c:261,14'
          Dst:             set_nonblocking
        - Src:             'lib/stream-fd.c:263,9'
          Dst:             close
    - functionName:    pfd_wait
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fd_pstream_cast
        - poll_fd_wait_at
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-fd.c:273,29'
          Dst:             fd_pstream_cast
        - Src:             'lib/stream-fd.c:274,5'
          Dst:             poll_fd_wait_at
    - functionName:    sock_errno
      functionSourceFile: '/src/openvswitch/lib/socket-util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 182
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/socket-util.h:182,12'
          Branch Sides:
            - BranchSide:      'lib/socket-util.h:182,12'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/socket-util.h:182,12'
              BranchSideFuncs:
                - __errno_location
      Callsites:
        - Src:             'lib/socket-util.h:182,12'
          Dst:             __errno_location
    - functionName:    stream_assert_class
      functionSourceFile: '/src/openvswitch/lib/stream-provider.h'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
        - class
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_fd_cast
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_assert_class
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-fd.c:77,5'
          Dst:             stream_assert_class
    - functionName:    fd_close
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 87
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - close
        - stream_fd_cast
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-fd.c:84,27'
          Dst:             stream_fd_cast
        - Src:             'lib/stream-fd.c:85,5'
          Dst:             close
    - functionName:    fd_connect
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - check_connection_completion
        - setsockopt_tcp_nodelay
        - stream_fd_cast
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-fd.c:94,21'
          Branch Sides:
            - BranchSide:      'lib/stream-fd.c:94,24'
              BranchSideFuncs:
                - setsockopt_tcp_nodelay
            - BranchSide:      'lib/stream-fd.c:94,21'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-fd.c:94,9'
          Branch Sides:
            - BranchSide:      'lib/stream-fd.c:94,9'
              BranchSideFuncs:
                - setsockopt_tcp_nodelay
            - BranchSide:      'lib/stream-fd.c:95,32'
              BranchSideFuncs:
                - setsockopt_tcp_nodelay
      Callsites:
        - Src:             'lib/stream-fd.c:92,27'
          Dst:             stream_fd_cast
        - Src:             'lib/stream-fd.c:93,18'
          Dst:             check_connection_completion
        - Src:             'lib/stream-fd.c:95,9'
          Dst:             setsockopt_tcp_nodelay
    - functionName:    fd_recv
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - stream
        - buffer
        - n
      BBCount:         14
      ICount:          89
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - recv
        - sock_errno
        - sock_strerror
        - stream_fd_cast
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-fd.c:108,9'
          Branch Sides:
            - BranchSide:      'lib/stream-fd.c:109,17'
              BranchSideFuncs:
                - sock_errno.4466
                - sock_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/stream-fd.c:120,12'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-fd.c:115,13'
          Branch Sides:
            - BranchSide:      'lib/stream-fd.c:116,13'
              BranchSideFuncs:
                - sock_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/stream-fd.c:118,17'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-fd.c:116,13'
          Branch Sides:
            - BranchSide:      'lib/stream-fd.c:116,13'
              BranchSideFuncs:
                - sock_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/stream-fd.c:117,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-fd.c:103,27'
          Dst:             stream_fd_cast
        - Src:             'lib/stream-fd.c:107,14'
          Dst:             recv
        - Src:             'lib/stream-fd.c:109,17'
          Dst:             sock_errno
        - Src:             'lib/stream-fd.c:116,13'
          Dst:             sock_strerror
        - Src:             'lib/stream-fd.c:116,13'
          Dst:             vlog_rate_limit
    - functionName:    fd_send
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - stream
        - buffer
        - n
      BBCount:         17
      ICount:          99
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - send
        - sock_errno
        - sock_strerror
        - stream_fd_cast
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-fd.c:131,9'
          Branch Sides:
            - BranchSide:      'lib/stream-fd.c:132,17'
              BranchSideFuncs:
                - sock_errno.4466
                - sock_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/stream-fd.c:143,13'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-fd.c:138,13'
          Branch Sides:
            - BranchSide:      'lib/stream-fd.c:139,13'
              BranchSideFuncs:
                - sock_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/stream-fd.c:141,17'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-fd.c:139,13'
          Branch Sides:
            - BranchSide:      'lib/stream-fd.c:139,13'
              BranchSideFuncs:
                - sock_strerror
                - vlog_rate_limit
            - BranchSide:      'lib/stream-fd.c:140,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-fd.c:143,13'
          Branch Sides:
            - BranchSide:      'lib/stream-fd.c:143,26'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-fd.c:143,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-fd.c:126,27'
          Dst:             stream_fd_cast
        - Src:             'lib/stream-fd.c:130,14'
          Dst:             send
        - Src:             'lib/stream-fd.c:132,17'
          Dst:             sock_errno
        - Src:             'lib/stream-fd.c:139,13'
          Dst:             sock_strerror
        - Src:             'lib/stream-fd.c:139,13'
          Dst:             vlog_rate_limit
    - functionName:    fd_wait
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 148
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - stream
        - wait
      BBCount:         9
      ICount:          52
      EdgeCount:       16
      CyclomaticComplexity: 9
      functionsReached:
        - abort
        - poll_fd_wait_at
        - stream_fd_cast
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-fd.c:150,5'
          Branch Sides:
            - BranchSide:      'lib/stream-fd.c:153,9'
              BranchSideFuncs:
                - poll_fd_wait_at
            - BranchSide:      'lib/stream-fd.c:153,9'
              BranchSideFuncs:
                - poll_fd_wait_at
            - BranchSide:      'lib/stream-fd.c:157,9'
              BranchSideFuncs:
                - poll_fd_wait_at
            - BranchSide:      'lib/stream-fd.c:161,9'
              BranchSideFuncs:
                - abort
      Callsites:
        - Src:             'lib/stream-fd.c:149,27'
          Dst:             stream_fd_cast
        - Src:             'lib/stream-fd.c:153,9'
          Dst:             poll_fd_wait_at
        - Src:             'lib/stream-fd.c:157,9'
          Dst:             poll_fd_wait_at
        - Src:             'lib/stream-fd.c:161,9'
          Dst:             abort
    - functionName:    new_fd_pstream
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - fd
        - accept_cb
        - unlink_path
        - pstreamp
      BBCount:         3
      ICount:          50
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pstream_init
        - xmalloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-fd.c:220,29'
          Dst:             xmalloc
        - Src:             'lib/stream-fd.c:221,5'
          Dst:             pstream_init
    - functionName:    new_fd_stream
      functionSourceFile: '/src/openvswitch/lib/stream-fd.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - fd
        - connect_status
        - fd_type
        - streamp
      BBCount:         3
      ICount:          47
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_init
        - xmalloc
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-fd.c:66,9'
          Dst:             xmalloc
        - Src:             'lib/stream-fd.c:67,5'
          Dst:             stream_init
    - functionName:    init_this_module_stream_replay
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 34
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-replay.c:34,1'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:34,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/stream-replay.c:34,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/stream-replay.c:34,1'
          Dst:             vlog_insert_module
    - functionName:    pstream_assert_class
      functionSourceFile: '/src/openvswitch/lib/stream-provider.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
        - class
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    replay_pstream_cast
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pstream_assert_class
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:277,5'
          Dst:             pstream_assert_class
    - functionName:    pstream_replay_listen
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - name
        - suffix
        - pstreamp
        - dscp
      BBCount:         20
      ICount:          141
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - ovs_replay_file_close
        - ovs_replay_file_open
        - ovs_replay_lock
        - ovs_replay_read
        - ovs_replay_unlock
        - pstream_init
        - vlog_rate_limit
        - xmalloc
        - xstrdup
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-replay.c:295,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:296,9'
              BranchSideFuncs:
                - ovs_replay_unlock
                - vlog_rate_limit
            - BranchSide:      'lib/stream-replay.c:300,29'
              BranchSideFuncs:
                - ovs_replay_read
                - xmalloc
                - xstrdup
                - pstream_init
                - ovs_replay_unlock
                - ovs_replay_file_close
                - ovs_replay_file_close
                - vlog_rate_limit
        - Branch String:   'lib/stream-replay.c:296,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:296,9'
              BranchSideFuncs:
                - vlog_rate_limit
                - ovs_replay_unlock
            - BranchSide:      'lib/stream-replay.c:297,9'
              BranchSideFuncs:
                - ovs_replay_unlock
        - Branch String:   'lib/stream-replay.c:301,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:302,9'
              BranchSideFuncs:
                - ovs_replay_file_close
                - ovs_replay_unlock
                - vlog_rate_limit
            - BranchSide:      'lib/stream-replay.c:307,9'
              BranchSideFuncs:
                - xmalloc
                - xstrdup
                - pstream_init
                - ovs_replay_unlock
                - ovs_replay_file_close
        - Branch String:   'lib/stream-replay.c:302,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:302,9'
              BranchSideFuncs:
                - vlog_rate_limit
                - ovs_replay_file_close
                - ovs_replay_unlock
            - BranchSide:      'lib/stream-replay.c:303,31'
              BranchSideFuncs:
                - ovs_replay_file_close
                - ovs_replay_unlock
        - Branch String:   'lib/stream-replay.c:307,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:308,18'
              BranchSideFuncs:
                - ovs_replay_file_close
                - ovs_replay_unlock
            - BranchSide:      'lib/stream-replay.c:313,33'
              BranchSideFuncs:
                - xmalloc
                - xstrdup
                - pstream_init
                - ovs_replay_unlock
      Callsites:
        - Src:             'lib/stream-replay.c:293,5'
          Dst:             ovs_replay_lock
        - Src:             'lib/stream-replay.c:294,13'
          Dst:             ovs_replay_file_open
        - Src:             'lib/stream-replay.c:296,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:300,13'
          Dst:             ovs_replay_read
        - Src:             'lib/stream-replay.c:302,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:303,9'
          Dst:             ovs_replay_file_close
        - Src:             'lib/stream-replay.c:309,9'
          Dst:             ovs_replay_file_close
        - Src:             'lib/stream-replay.c:313,33'
          Dst:             xmalloc
        - Src:             'lib/stream-replay.c:314,56'
          Dst:             xstrdup
        - Src:             'lib/stream-replay.c:314,5'
          Dst:             pstream_init
        - Src:             'lib/stream-replay.c:319,5'
          Dst:             ovs_replay_unlock
    - functionName:    pstream_replay_close
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 390
      functionLinenumberEnd: 395
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_replay_file_close
        - replay_pstream_cast
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:391,33'
          Dst:             replay_pstream_cast
        - Src:             'lib/stream-replay.c:393,5'
          Dst:             ovs_replay_file_close
    - functionName:    pstream_replay_accept
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 435
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
        - new_streamp
      BBCount:         19
      ICount:          129
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - new_replay_stream
        - ovs_replay_lock
        - ovs_replay_normalized_seqno
        - ovs_replay_read
        - ovs_replay_seqno
        - ovs_replay_seqno_is_read
        - ovs_replay_unlock
        - replay_pstream_cast
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-replay.c:411,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:411,38'
              BranchSideFuncs:
                - ovs_replay_unlock
            - BranchSide:      'lib/stream-replay.c:412,16'
              BranchSideFuncs:
                - ovs_replay_unlock
        - Branch String:   'lib/stream-replay.c:410,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:412,16'
              BranchSideFuncs:
                - ovs_replay_read
                - ovs_replay_unlock
                - new_replay_stream
                - ovs_replay_unlock
                - vlog_rate_limit
            - BranchSide:      'lib/stream-replay.c:417,30'
              BranchSideFuncs:
                - ovs_replay_read
                - ovs_replay_unlock
                - new_replay_stream
                - ovs_replay_unlock
                - vlog_rate_limit
        - Branch String:   'lib/stream-replay.c:419,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:420,9'
              BranchSideFuncs:
                - ovs_replay_unlock
                - vlog_rate_limit
            - BranchSide:      'lib/stream-replay.c:426,5'
              BranchSideFuncs:
                - ovs_replay_unlock
                - new_replay_stream
        - Branch String:   'lib/stream-replay.c:420,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:420,9'
              BranchSideFuncs:
                - vlog_rate_limit
                - ovs_replay_unlock
            - BranchSide:      'lib/stream-replay.c:422,9'
              BranchSideFuncs:
                - ovs_replay_unlock
        - Branch String:   'lib/stream-replay.c:428,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:429,14'
              BranchSideFuncs:
                - new_replay_stream
            - BranchSide:      'lib/stream-replay.c:432,19'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-replay.c:402,33'
          Dst:             replay_pstream_cast
        - Src:             'lib/stream-replay.c:403,22'
          Dst:             ovs_replay_normalized_seqno
        - Src:             'lib/stream-replay.c:407,5'
          Dst:             ovs_replay_lock
        - Src:             'lib/stream-replay.c:408,5'
          Dst:             ovs_replay_seqno
        - Src:             'lib/stream-replay.c:410,23'
          Dst:             ovs_replay_seqno
        - Src:             'lib/stream-replay.c:411,13'
          Dst:             ovs_replay_seqno_is_read
        - Src:             'lib/stream-replay.c:413,9'
          Dst:             ovs_replay_unlock
        - Src:             'lib/stream-replay.c:417,14'
          Dst:             ovs_replay_read
        - Src:             'lib/stream-replay.c:420,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:422,9'
          Dst:             ovs_replay_unlock
        - Src:             'lib/stream-replay.c:426,5'
          Dst:             ovs_replay_unlock
        - Src:             'lib/stream-replay.c:430,18'
          Dst:             new_replay_stream
    - functionName:    pstream_replay_wait
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pstream
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - poll_immediate_wake_at
        - replay_pstream_cast
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-replay.c:443,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:443,9'
              BranchSideFuncs:
                - poll_immediate_wake_at
            - BranchSide:      'lib/stream-replay.c:445,9'
              BranchSideFuncs:
                - poll_immediate_wake_at
      Callsites:
        - Src:             'lib/stream-replay.c:441,33'
          Dst:             replay_pstream_cast
        - Src:             'lib/stream-replay.c:445,9'
          Dst:             poll_immediate_wake_at
    - functionName:    ovs_replay_normalized_seqno
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.h'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - seqno
      BBCount:         4
      ICount:          23
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/ovs-replay.h:82,12'
          Branch Sides:
            - BranchSide:      'lib/ovs-replay.h:82,25'
              BranchSideFuncs: []
            - BranchSide:      'lib/ovs-replay.h:82,34'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ovs_replay_seqno_is_read
      functionSourceFile: '/src/openvswitch/lib/ovs-replay.h'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - seqno
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    new_replay_stream
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - streamp
      BBCount:         20
      ICount:          135
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - ovs_replay_file_close
        - ovs_replay_file_open
        - ovs_replay_lock
        - ovs_replay_read
        - ovs_replay_unlock
        - stream_init
        - vlog_rate_limit
        - xmalloc
        - xstrdup
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/stream-replay.c:61,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:62,9'
              BranchSideFuncs:
                - ovs_replay_unlock
                - vlog_rate_limit
            - BranchSide:      'lib/stream-replay.c:66,29'
              BranchSideFuncs:
                - ovs_replay_read
                - xmalloc
                - xstrdup
                - stream_init
                - ovs_replay_unlock
                - ovs_replay_file_close
                - ovs_replay_file_close
                - vlog_rate_limit
        - Branch String:   'lib/stream-replay.c:62,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:62,9'
              BranchSideFuncs:
                - vlog_rate_limit
                - ovs_replay_unlock
            - BranchSide:      'lib/stream-replay.c:63,9'
              BranchSideFuncs:
                - ovs_replay_unlock
        - Branch String:   'lib/stream-replay.c:67,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:68,9'
              BranchSideFuncs:
                - ovs_replay_file_close
                - ovs_replay_unlock
                - vlog_rate_limit
            - BranchSide:      'lib/stream-replay.c:73,9'
              BranchSideFuncs:
                - xmalloc
                - xstrdup
                - stream_init
                - ovs_replay_unlock
                - ovs_replay_file_close
        - Branch String:   'lib/stream-replay.c:68,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:68,9'
              BranchSideFuncs:
                - vlog_rate_limit
                - ovs_replay_file_close
                - ovs_replay_unlock
            - BranchSide:      'lib/stream-replay.c:69,31'
              BranchSideFuncs:
                - ovs_replay_file_close
                - ovs_replay_unlock
        - Branch String:   'lib/stream-replay.c:73,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:74,18'
              BranchSideFuncs:
                - ovs_replay_file_close
                - ovs_replay_unlock
            - BranchSide:      'lib/stream-replay.c:79,9'
              BranchSideFuncs:
                - xmalloc
                - xstrdup
                - stream_init
                - ovs_replay_unlock
      Callsites:
        - Src:             'lib/stream-replay.c:59,5'
          Dst:             ovs_replay_lock
        - Src:             'lib/stream-replay.c:60,13'
          Dst:             ovs_replay_file_open
        - Src:             'lib/stream-replay.c:62,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:66,13'
          Dst:             ovs_replay_read
        - Src:             'lib/stream-replay.c:68,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:69,9'
          Dst:             ovs_replay_file_close
        - Src:             'lib/stream-replay.c:75,9'
          Dst:             ovs_replay_file_close
        - Src:             'lib/stream-replay.c:79,9'
          Dst:             xmalloc
        - Src:             'lib/stream-replay.c:80,54'
          Dst:             xstrdup
        - Src:             'lib/stream-replay.c:80,5'
          Dst:             stream_init
        - Src:             'lib/stream-replay.c:85,5'
          Dst:             ovs_replay_unlock
    - functionName:    stream_replay_open
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - name
        - suffix
        - streamp
        - dscp
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - new_replay_stream
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:154,12'
          Dst:             new_replay_stream
    - functionName:    stream_replay_close
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_replay_file_close
        - stream_replay_cast
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:160,31'
          Dst:             stream_replay_cast
        - Src:             'lib/stream-replay.c:161,5'
          Dst:             ovs_replay_file_close
    - functionName:    stream_replay_recv
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - stream
        - buffer
        - n
      BBCount:         19
      ICount:          126
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - ovs_replay_lock
        - ovs_replay_normalized_seqno
        - ovs_replay_read
        - ovs_replay_seqno
        - ovs_replay_seqno_is_read
        - ovs_replay_unlock
        - stream_replay_cast
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-replay.c:176,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:176,38'
              BranchSideFuncs:
                - ovs_replay_unlock
            - BranchSide:      'lib/stream-replay.c:177,15'
              BranchSideFuncs:
                - ovs_replay_unlock
        - Branch String:   'lib/stream-replay.c:175,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:177,15'
              BranchSideFuncs:
                - ovs_replay_read
                - ovs_replay_unlock
                - vlog_rate_limit
            - BranchSide:      'lib/stream-replay.c:181,29'
              BranchSideFuncs:
                - ovs_replay_read
                - ovs_replay_unlock
                - vlog_rate_limit
        - Branch String:   'lib/stream-replay.c:182,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:182,9'
              BranchSideFuncs:
                - ovs_replay_unlock
                - vlog_rate_limit
            - BranchSide:      'lib/stream-replay.c:183,9'
              BranchSideFuncs:
                - ovs_replay_unlock
                - vlog_rate_limit
        - Branch String:   'lib/stream-replay.c:183,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:183,9'
              BranchSideFuncs:
                - vlog_rate_limit
                - ovs_replay_unlock
            - BranchSide:      'lib/stream-replay.c:184,9'
              BranchSideFuncs:
                - ovs_replay_unlock
        - Branch String:   'lib/stream-replay.c:189,12'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:189,21'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-replay.c:189,29'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-replay.c:168,31'
          Dst:             stream_replay_cast
        - Src:             'lib/stream-replay.c:169,22'
          Dst:             ovs_replay_normalized_seqno
        - Src:             'lib/stream-replay.c:172,5'
          Dst:             ovs_replay_lock
        - Src:             'lib/stream-replay.c:173,5'
          Dst:             ovs_replay_seqno
        - Src:             'lib/stream-replay.c:175,23'
          Dst:             ovs_replay_seqno
        - Src:             'lib/stream-replay.c:176,13'
          Dst:             ovs_replay_seqno_is_read
        - Src:             'lib/stream-replay.c:181,13'
          Dst:             ovs_replay_read
        - Src:             'lib/stream-replay.c:183,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:188,5'
          Dst:             ovs_replay_unlock
    - functionName:    stream_replay_send
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - stream
        - buffer
        - n
      BBCount:         22
      ICount:          139
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - ovs_replay_lock
        - ovs_replay_normalized_seqno
        - ovs_replay_read
        - ovs_replay_seqno
        - ovs_replay_seqno_is_read
        - ovs_replay_unlock
        - stream_replay_cast
        - vlog_rate_limit
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-replay.c:204,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:204,37'
              BranchSideFuncs:
                - ovs_replay_unlock
            - BranchSide:      'lib/stream-replay.c:205,15'
              BranchSideFuncs:
                - ovs_replay_unlock
        - Branch String:   'lib/stream-replay.c:203,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:205,15'
              BranchSideFuncs:
                - ovs_replay_unlock
            - BranchSide:      'lib/stream-replay.c:209,29'
              BranchSideFuncs:
                - ovs_replay_read
                - ovs_replay_unlock
                - vlog_rate_limit
        - Branch String:   'lib/stream-replay.c:210,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:211,9'
              BranchSideFuncs:
                - ovs_replay_unlock
                - vlog_rate_limit
            - BranchSide:      'lib/stream-replay.c:214,5'
              BranchSideFuncs:
                - ovs_replay_unlock
        - Branch String:   'lib/stream-replay.c:211,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:211,9'
              BranchSideFuncs:
                - vlog_rate_limit
                - ovs_replay_unlock
            - BranchSide:      'lib/stream-replay.c:212,9'
              BranchSideFuncs:
                - ovs_replay_unlock
        - Branch String:   'lib/stream-replay.c:214,5'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:217,5'
              BranchSideFuncs:
                - ovs_replay_unlock
            - BranchSide:      'lib/stream-replay.c:217,5'
              BranchSideFuncs:
                - ovs_replay_unlock
        - Branch String:   'lib/stream-replay.c:218,12'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:218,21'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-replay.c:218,29'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-replay.c:196,31'
          Dst:             stream_replay_cast
        - Src:             'lib/stream-replay.c:197,22'
          Dst:             ovs_replay_normalized_seqno
        - Src:             'lib/stream-replay.c:200,5'
          Dst:             ovs_replay_lock
        - Src:             'lib/stream-replay.c:201,5'
          Dst:             ovs_replay_seqno
        - Src:             'lib/stream-replay.c:203,23'
          Dst:             ovs_replay_seqno
        - Src:             'lib/stream-replay.c:204,12'
          Dst:             ovs_replay_seqno_is_read
        - Src:             'lib/stream-replay.c:209,13'
          Dst:             ovs_replay_read
        - Src:             'lib/stream-replay.c:211,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:217,5'
          Dst:             ovs_replay_unlock
    - functionName:    stream_replay_wait
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - stream
        - wait
      BBCount:         18
      ICount:          86
      EdgeCount:       20
      CyclomaticComplexity: 4
      functionsReached:
        - abort
        - ovs_replay_seqno_is_read
        - poll_immediate_wake_at
        - stream_replay_cast
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-replay.c:225,5'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:228,9'
              BranchSideFuncs:
                - poll_immediate_wake_at
            - BranchSide:      'lib/stream-replay.c:232,13'
              BranchSideFuncs:
                - ovs_replay_seqno_is_read
                - poll_immediate_wake_at
            - BranchSide:      'lib/stream-replay.c:239,13'
              BranchSideFuncs:
                - ovs_replay_seqno_is_read
                - poll_immediate_wake_at
            - BranchSide:      'lib/stream-replay.c:246,9'
              BranchSideFuncs:
                - abort
        - Branch String:   'lib/stream-replay.c:232,33'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:232,62'
              BranchSideFuncs:
                - ovs_replay_seqno_is_read
                - poll_immediate_wake_at
            - BranchSide:      'lib/stream-replay.c:236,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-replay.c:232,13'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:234,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-replay.c:236,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-replay.c:239,33'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:239,61'
              BranchSideFuncs:
                - ovs_replay_seqno_is_read
                - poll_immediate_wake_at
            - BranchSide:      'lib/stream-replay.c:243,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-replay.c:239,13'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:241,13'
              BranchSideFuncs:
                - poll_immediate_wake_at
            - BranchSide:      'lib/stream-replay.c:243,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-replay.c:224,31'
          Dst:             stream_replay_cast
        - Src:             'lib/stream-replay.c:228,9'
          Dst:             poll_immediate_wake_at
        - Src:             'lib/stream-replay.c:232,37'
          Dst:             ovs_replay_seqno_is_read
        - Src:             'lib/stream-replay.c:234,13'
          Dst:             poll_immediate_wake_at
        - Src:             'lib/stream-replay.c:239,36'
          Dst:             ovs_replay_seqno_is_read
        - Src:             'lib/stream-replay.c:241,13'
          Dst:             poll_immediate_wake_at
        - Src:             'lib/stream-replay.c:246,9'
          Dst:             abort
    - functionName:    stream_replay_cast
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 91
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - stream_assert_class
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-replay.c:92,5'
          Dst:             stream_assert_class
    - functionName:    stream_assert_class
      functionSourceFile: '/src/openvswitch/lib/stream-provider.h'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - stream
        - class
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pstream_replay_close_wfd
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 382
      functionLinenumberEnd: 386
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ps
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_replay_file_close
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-replay.c:383,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:383,9'
              BranchSideFuncs:
                - ovs_replay_file_close
            - BranchSide:      'lib/stream-replay.c:384,31'
              BranchSideFuncs:
                - ovs_replay_file_close
      Callsites:
        - Src:             'lib/stream-replay.c:384,9'
          Dst:             ovs_replay_file_close
    - functionName:    pstream_replay_write_accept
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 360
      functionLinenumberEnd: 378
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ps
        - s
        - accept_result
      BBCount:         24
      ICount:          138
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - ovs_replay_get_state
        - ovs_replay_write
        - strlen
        - vlog_rate_limit
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/stream-replay.c:364,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:365,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-replay.c:368,10'
              BranchSideFuncs:
                - strlen
                - ovs_replay_write
                - vlog_rate_limit
                - ovs_replay_write
                - vlog_rate_limit
        - Branch String:   'lib/stream-replay.c:368,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:369,22'
              BranchSideFuncs:
                - ovs_replay_write
                - vlog_rate_limit
            - BranchSide:      'lib/stream-replay.c:374,33'
              BranchSideFuncs:
                - ovs_replay_write
                - vlog_rate_limit
        - Branch String:   'lib/stream-replay.c:370,13'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:371,13'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/stream-replay.c:374,5'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-replay.c:371,13'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:371,13'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/stream-replay.c:373,9'
              BranchSideFuncs: []
        - Branch String:   'lib/stream-replay.c:375,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:375,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/stream-replay.c:377,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-replay.c:361,17'
          Dst:             ovs_replay_get_state
        - Src:             'lib/stream-replay.c:369,15'
          Dst:             strlen
        - Src:             'lib/stream-replay.c:370,13'
          Dst:             ovs_replay_write
        - Src:             'lib/stream-replay.c:371,13'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:374,16'
          Dst:             ovs_replay_write
        - Src:             'lib/stream-replay.c:375,9'
          Dst:             vlog_rate_limit
    - functionName:    pstream_replay_open_wfd
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 355
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ps
        - listen_result
        - name
      BBCount:         23
      ICount:          133
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - ovs_replay_file_close
        - ovs_replay_file_open
        - ovs_replay_get_state
        - ovs_replay_lock
        - ovs_replay_unlock
        - ovs_replay_write
        - vlog_rate_limit
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-replay.c:331,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:332,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-replay.c:335,5'
              BranchSideFuncs:
                - ovs_replay_lock
                - ovs_replay_file_open
                - ovs_replay_unlock
                - ovs_replay_write
                - ovs_replay_file_close
                - vlog_rate_limit
                - ovs_replay_unlock
                - vlog_rate_limit
        - Branch String:   'lib/stream-replay.c:337,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:338,9'
              BranchSideFuncs:
                - ovs_replay_unlock
                - vlog_rate_limit
            - BranchSide:      'lib/stream-replay.c:342,5'
              BranchSideFuncs:
                - ovs_replay_unlock
                - ovs_replay_write
                - ovs_replay_file_close
                - vlog_rate_limit
        - Branch String:   'lib/stream-replay.c:338,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:338,9'
              BranchSideFuncs:
                - vlog_rate_limit
                - ovs_replay_unlock
            - BranchSide:      'lib/stream-replay.c:339,9'
              BranchSideFuncs:
                - ovs_replay_unlock
        - Branch String:   'lib/stream-replay.c:344,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:345,9'
              BranchSideFuncs:
                - ovs_replay_file_close
                - vlog_rate_limit
            - BranchSide:      'lib/stream-replay.c:349,9'
              BranchSideFuncs:
                - ovs_replay_file_close
        - Branch String:   'lib/stream-replay.c:345,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:345,9'
              BranchSideFuncs:
                - vlog_rate_limit
                - ovs_replay_file_close
            - BranchSide:      'lib/stream-replay.c:347,5'
              BranchSideFuncs:
                - ovs_replay_file_close
        - Branch String:   'lib/stream-replay.c:349,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:351,31'
              BranchSideFuncs:
                - ovs_replay_file_close
            - BranchSide:      'lib/stream-replay.c:353,26'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-replay.c:327,17'
          Dst:             ovs_replay_get_state
        - Src:             'lib/stream-replay.c:335,5'
          Dst:             ovs_replay_lock
        - Src:             'lib/stream-replay.c:336,13'
          Dst:             ovs_replay_file_open
        - Src:             'lib/stream-replay.c:338,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:339,9'
          Dst:             ovs_replay_unlock
        - Src:             'lib/stream-replay.c:342,5'
          Dst:             ovs_replay_unlock
        - Src:             'lib/stream-replay.c:344,9'
          Dst:             ovs_replay_write
        - Src:             'lib/stream-replay.c:345,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:351,9'
          Dst:             ovs_replay_file_close
    - functionName:    stream_replay_close_wfd
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_replay_file_close
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-replay.c:145,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:145,9'
              BranchSideFuncs:
                - ovs_replay_file_close
            - BranchSide:      'lib/stream-replay.c:146,31'
              BranchSideFuncs:
                - ovs_replay_file_close
      Callsites:
        - Src:             'lib/stream-replay.c:146,9'
          Dst:             ovs_replay_file_close
    - functionName:    stream_replay_write
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - bool
      constantsTouched: []
      argNames:
        - s
        - buffer
        - n
        - is_read
      BBCount:         13
      ICount:          84
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - ovs_replay_get_state
        - ovs_replay_write
        - vlog_rate_limit
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/stream-replay.c:133,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:134,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-replay.c:137,26'
              BranchSideFuncs:
                - ovs_replay_write
                - vlog_rate_limit
        - Branch String:   'lib/stream-replay.c:137,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:137,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/stream-replay.c:138,9'
              BranchSideFuncs:
                - vlog_rate_limit
        - Branch String:   'lib/stream-replay.c:138,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:138,9'
              BranchSideFuncs:
                - vlog_rate_limit
            - BranchSide:      'lib/stream-replay.c:139,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-replay.c:131,17'
          Dst:             ovs_replay_get_state
        - Src:             'lib/stream-replay.c:137,9'
          Dst:             ovs_replay_write
        - Src:             'lib/stream-replay.c:138,9'
          Dst:             vlog_rate_limit
    - functionName:    stream_replay_open_wfd
      functionSourceFile: '/src/openvswitch/lib/stream-replay.c'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - open_result
        - name
      BBCount:         23
      ICount:          133
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - ovs_replay_file_close
        - ovs_replay_file_open
        - ovs_replay_get_state
        - ovs_replay_lock
        - ovs_replay_unlock
        - ovs_replay_write
        - vlog_rate_limit
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/stream-replay.c:103,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:104,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-replay.c:107,5'
              BranchSideFuncs:
                - ovs_replay_lock
                - ovs_replay_file_open
                - ovs_replay_unlock
                - ovs_replay_write
                - ovs_replay_file_close
                - vlog_rate_limit
                - ovs_replay_unlock
                - vlog_rate_limit
        - Branch String:   'lib/stream-replay.c:109,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:110,9'
              BranchSideFuncs:
                - ovs_replay_unlock
                - vlog_rate_limit
            - BranchSide:      'lib/stream-replay.c:114,5'
              BranchSideFuncs:
                - ovs_replay_unlock
                - ovs_replay_write
                - ovs_replay_file_close
                - vlog_rate_limit
        - Branch String:   'lib/stream-replay.c:110,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:110,9'
              BranchSideFuncs:
                - vlog_rate_limit
                - ovs_replay_unlock
            - BranchSide:      'lib/stream-replay.c:111,9'
              BranchSideFuncs:
                - ovs_replay_unlock
        - Branch String:   'lib/stream-replay.c:116,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:117,9'
              BranchSideFuncs:
                - ovs_replay_file_close
                - vlog_rate_limit
            - BranchSide:      'lib/stream-replay.c:120,9'
              BranchSideFuncs:
                - ovs_replay_file_close
        - Branch String:   'lib/stream-replay.c:117,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:117,9'
              BranchSideFuncs:
                - vlog_rate_limit
                - ovs_replay_file_close
            - BranchSide:      'lib/stream-replay.c:119,5'
              BranchSideFuncs:
                - ovs_replay_file_close
        - Branch String:   'lib/stream-replay.c:120,9'
          Branch Sides:
            - BranchSide:      'lib/stream-replay.c:122,31'
              BranchSideFuncs:
                - ovs_replay_file_close
            - BranchSide:      'lib/stream-replay.c:124,25'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-replay.c:99,17'
          Dst:             ovs_replay_get_state
        - Src:             'lib/stream-replay.c:107,5'
          Dst:             ovs_replay_lock
        - Src:             'lib/stream-replay.c:108,13'
          Dst:             ovs_replay_file_open
        - Src:             'lib/stream-replay.c:110,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:111,9'
          Dst:             ovs_replay_unlock
        - Src:             'lib/stream-replay.c:114,5'
          Dst:             ovs_replay_unlock
        - Src:             'lib/stream-replay.c:116,9'
          Dst:             ovs_replay_write
        - Src:             'lib/stream-replay.c:117,9'
          Dst:             vlog_rate_limit
        - Src:             'lib/stream-replay.c:122,9'
          Dst:             ovs_replay_file_close
    - functionName:    init_this_module_stream_tcp
      functionSourceFile: '/src/openvswitch/lib/stream-tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-tcp.c:36,1'
          Branch Sides:
            - BranchSide:      'lib/stream-tcp.c:36,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/stream-tcp.c:36,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/stream-tcp.c:36,1'
          Dst:             vlog_insert_module
    - functionName:    ptcp_accept
      functionSourceFile: '/src/openvswitch/lib/stream-tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - fd
        - ss
        - ss_len
        - streamp
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ds_put_cstr
        - ds_put_format
        - ds_steal_cstr
        - new_tcp_stream
        - ss_format_address
        - ss_get_port
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-tcp.c:125,5'
          Dst:             ds_put_cstr
        - Src:             'lib/stream-tcp.c:126,5'
          Dst:             ss_format_address
        - Src:             'lib/stream-tcp.c:127,38'
          Dst:             ss_get_port
        - Src:             'lib/stream-tcp.c:127,5'
          Dst:             ds_put_format
        - Src:             'lib/stream-tcp.c:129,27'
          Dst:             ds_steal_cstr
        - Src:             'lib/stream-tcp.c:129,12'
          Dst:             new_tcp_stream
    - functionName:    new_tcp_stream
      functionSourceFile: '/src/openvswitch/lib/stream-tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - fd
        - connect_status
        - streamp
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - new_fd_stream
        - setsockopt_tcp_nodelay
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/stream-tcp.c:44,9'
          Branch Sides:
            - BranchSide:      'lib/stream-tcp.c:44,9'
              BranchSideFuncs:
                - setsockopt_tcp_nodelay
                - new_fd_stream
            - BranchSide:      'lib/stream-tcp.c:45,32'
              BranchSideFuncs:
                - setsockopt_tcp_nodelay
                - new_fd_stream
      Callsites:
        - Src:             'lib/stream-tcp.c:45,9'
          Dst:             setsockopt_tcp_nodelay
        - Src:             'lib/stream-tcp.c:48,12'
          Dst:             new_fd_stream
    - functionName:    new_pstream
      functionSourceFile: '/src/openvswitch/lib/stream-tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - suffix
        - name
        - pstreamp
        - dscp
        - unlink_path
        - kernel_print_port
      BBCount:         12
      ICount:          102
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - ds_put_cstr
        - ds_put_format
        - ds_steal_cstr
        - htons
        - inet_open_passive
        - new_fd_pstream
        - pstream_set_bound_port
        - ptcp_accept
        - ss_format_address
        - ss_get_port
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/stream-tcp.c:93,9'
          Branch Sides:
            - BranchSide:      'lib/stream-tcp.c:94,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-tcp.c:97,15'
              BranchSideFuncs:
                - ss_get_port
                - ds_put_format
                - ss_format_address
                - ds_steal_cstr
                - new_fd_pstream
                - ss_get_port
                - htons
                - pstream_set_bound_port
                - ds_put_cstr
        - Branch String:   'lib/stream-tcp.c:98,9'
          Branch Sides:
            - BranchSide:      'lib/stream-tcp.c:99,55'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_steal_cstr
                - new_fd_pstream
                - ss_get_port
                - htons
                - pstream_set_bound_port
            - BranchSide:      'lib/stream-tcp.c:102,34'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_steal_cstr
                - new_fd_pstream
                - ss_get_port
                - htons
                - pstream_set_bound_port
        - Branch String:   'lib/stream-tcp.c:107,9'
          Branch Sides:
            - BranchSide:      'lib/stream-tcp.c:108,33'
              BranchSideFuncs: []
            - BranchSide:      'lib/stream-tcp.c:110,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-tcp.c:91,10'
          Dst:             inet_open_passive
        - Src:             'lib/stream-tcp.c:99,55'
          Dst:             ss_get_port
        - Src:             'lib/stream-tcp.c:99,9'
          Dst:             ds_put_format
        - Src:             'lib/stream-tcp.c:100,9'
          Dst:             ss_format_address
        - Src:             'lib/stream-tcp.c:102,9'
          Dst:             ds_put_cstr
        - Src:             'lib/stream-tcp.c:105,28'
          Dst:             ds_steal_cstr
        - Src:             'lib/stream-tcp.c:105,13'
          Dst:             new_fd_pstream
        - Src:             'lib/stream-tcp.c:105,13'
          Dst:             ptcp_accept
        - Src:             'lib/stream-tcp.c:108,49'
          Dst:             ss_get_port
        - Src:             'lib/stream-tcp.c:108,43'
          Dst:             htons
        - Src:             'lib/stream-tcp.c:108,9'
          Dst:             pstream_set_bound_port
    - functionName:    ptcp_open
      functionSourceFile: '/src/openvswitch/lib/stream-tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 116
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - name
        - suffix
        - pstreamp
        - dscp
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - new_pstream
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/stream-tcp.c:117,12'
          Dst:             new_pstream
    - functionName:    tcp_open
      functionSourceFile: '/src/openvswitch/lib/stream-tcp.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - name
        - suffix
        - streamp
        - dscp
      BBCount:         11
      ICount:          77
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - inet_open_active
        - new_tcp_stream
        - ovs_strerror
        - vlog
        - xstrdup
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/stream-tcp.c:57,9'
          Branch Sides:
            - BranchSide:      'lib/stream-tcp.c:58,39'
              BranchSideFuncs:
                - xstrdup
                - new_tcp_stream
            - BranchSide:      'lib/stream-tcp.c:60,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
        - Branch String:   'lib/stream-tcp.c:60,9'
          Branch Sides:
            - BranchSide:      'lib/stream-tcp.c:60,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/stream-tcp.c:61,16'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/stream-tcp.c:56,13'
          Dst:             inet_open_active
        - Src:             'lib/stream-tcp.c:58,31'
          Dst:             xstrdup
        - Src:             'lib/stream-tcp.c:58,16'
          Dst:             new_tcp_stream
        - Src:             'lib/stream-tcp.c:60,9'
          Dst:             ovs_strerror
        - Src:             'lib/stream-tcp.c:60,9'
          Dst:             vlog
    - functionName:    syslog_direct_log
      functionSourceFile: '/src/openvswitch/lib/syslog-direct.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - this
        - pri
        - msg
      BBCount:         18
      ICount:          124
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - ds_cstr
        - ds_destroy
        - ds_put_format
        - send
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/syslog-direct.c:91,9'
          Branch Sides:
            - BranchSide:      'lib/syslog-direct.c:93,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/syslog-direct.c:96,11'
              BranchSideFuncs:
                - ds_put_format
                - ds_cstr
                - strlen
                - send
                - ds_destroy
                - __errno_location
                - strlen
        - Branch String:   'lib/syslog-direct.c:96,9'
          Branch Sides:
            - BranchSide:      'lib/syslog-direct.c:97,16'
              BranchSideFuncs:
                - ds_put_format
                - ds_cstr
                - strlen
                - send
                - ds_destroy
                - __errno_location
                - strlen
            - BranchSide:      'lib/syslog-direct.c:99,34'
              BranchSideFuncs:
                - ds_put_format
                - ds_cstr
                - strlen
                - send
                - ds_destroy
                - __errno_location
                - strlen
        - Branch String:   'lib/syslog-direct.c:101,16'
          Branch Sides:
            - BranchSide:      'lib/syslog-direct.c:101,14'
              BranchSideFuncs:
                - strlen
                - send
                - ds_destroy
                - __errno_location
            - BranchSide:      'lib/syslog-direct.c:101,14'
              BranchSideFuncs:
                - send
                - ds_destroy
                - __errno_location
        - Branch String:   'lib/syslog-direct.c:102,55'
          Branch Sides:
            - BranchSide:      'lib/syslog-direct.c:102,58'
              BranchSideFuncs:
                - __errno_location
                - ds_destroy
                - send
            - BranchSide:      'lib/syslog-direct.c:102,5'
              BranchSideFuncs:
                - ds_destroy
                - send
                - __errno_location
        - Branch String:   'lib/syslog-direct.c:102,5'
          Branch Sides:
            - BranchSide:      'lib/syslog-direct.c:106,21'
              BranchSideFuncs:
                - send
                - ds_destroy
                - __errno_location
            - BranchSide:      'lib/syslog-direct.c:109,5'
              BranchSideFuncs:
                - ds_destroy
      Callsites:
        - Src:             'lib/syslog-direct.c:99,5'
          Dst:             ds_put_format
        - Src:             'lib/syslog-direct.c:100,16'
          Dst:             ds_cstr
        - Src:             'lib/syslog-direct.c:101,16'
          Dst:             strlen
        - Src:             'lib/syslog-direct.c:101,16'
          Dst:             strlen
        - Src:             'lib/syslog-direct.c:102,12'
          Dst:             send
        - Src:             'lib/syslog-direct.c:102,58'
          Dst:             __errno_location
        - Src:             'lib/syslog-direct.c:109,5'
          Dst:             ds_destroy
    - functionName:    syslog_direct_open
      functionSourceFile: '/src/openvswitch/lib/syslog-direct.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 77
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - this
        - facility
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    syslog_direct_create
      functionSourceFile: '/src/openvswitch/lib/syslog-direct.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - method
      BBCount:         9
      ICount:          65
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - inet_open_active
        - make_unix_socket
        - strncmp
        - xmalloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/syslog-direct.c:60,9'
          Branch Sides:
            - BranchSide:      'lib/syslog-direct.c:61,39'
              BranchSideFuncs:
                - strncmp
                - make_unix_socket
            - BranchSide:      'lib/syslog-direct.c:62,25'
              BranchSideFuncs:
                - strncmp
                - make_unix_socket
        - Branch String:   'lib/syslog-direct.c:62,16'
          Branch Sides:
            - BranchSide:      'lib/syslog-direct.c:63,62'
              BranchSideFuncs: []
            - BranchSide:      'lib/syslog-direct.c:65,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/syslog-direct.c:52,34'
          Dst:             xmalloc
        - Src:             'lib/syslog-direct.c:60,10'
          Dst:             strncmp
        - Src:             'lib/syslog-direct.c:61,9'
          Dst:             inet_open_active
        - Src:             'lib/syslog-direct.c:62,17'
          Dst:             strncmp
        - Src:             'lib/syslog-direct.c:63,20'
          Dst:             make_unix_socket
    - functionName:    syslog_libc_log
      functionSourceFile: '/src/openvswitch/lib/syslog-libc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - this
        - pri
        - msg
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - syslog
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/syslog-libc.c:75,5'
          Dst:             syslog
    - functionName:    syslog
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    syslog_libc_open
      functionSourceFile: '/src/openvswitch/lib/syslog-libc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - this
        - facility
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - nullable_xstrdup
        - openlog
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/syslog-libc.c:67,13'
          Dst:             nullable_xstrdup
        - Src:             'lib/syslog-libc.c:69,5'
          Dst:             openlog
    - functionName:    openlog
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    syslog_libc_create
      functionSourceFile: '/src/openvswitch/lib/syslog-libc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xmalloc
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/syslog-libc.c:49,32'
          Branch Sides:
            - BranchSide:      'lib/syslog-libc.c:49,25'
              BranchSideFuncs:
                - xmalloc
            - BranchSide:      'lib/syslog-libc.c:49,32'
              BranchSideFuncs:
                - xmalloc
      Callsites:
        - Src:             'lib/syslog-libc.c:49,32'
          Dst:             xmalloc
    - functionName:    syslog_null_log
      functionSourceFile: '/src/openvswitch/lib/syslog-null.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - this
        - pri
        - msg
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    syslog_null_open
      functionSourceFile: '/src/openvswitch/lib/syslog-null.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - this
        - facility
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    syslog_null_create
      functionSourceFile: '/src/openvswitch/lib/syslog-null.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - xmalloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/syslog-null.c:41,32'
          Branch Sides:
            - BranchSide:      'lib/syslog-null.c:41,25'
              BranchSideFuncs:
                - xmalloc
            - BranchSide:      'lib/syslog-null.c:41,32'
              BranchSideFuncs:
                - xmalloc
      Callsites:
        - Src:             'lib/syslog-null.c:41,32'
          Dst:             xmalloc
    - functionName:    token_bucket_wait_at
      functionSourceFile: '/src/openvswitch/lib/token-bucket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - tb
        - n
        - where
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - poll_immediate_wake_at
        - poll_timer_wait_until_at
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/token-bucket.c:91,9'
          Branch Sides:
            - BranchSide:      'lib/token-bucket.c:92,32'
              BranchSideFuncs:
                - poll_immediate_wake_at
            - BranchSide:      'lib/token-bucket.c:94,29'
              BranchSideFuncs:
                - poll_timer_wait_until_at
      Callsites:
        - Src:             'lib/token-bucket.c:92,9'
          Dst:             poll_immediate_wake_at
        - Src:             'lib/token-bucket.c:95,9'
          Dst:             poll_timer_wait_until_at
    - functionName:    sat_add
      functionSourceFile: '/src/openvswitch/lib/sat-math.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - x
        - y
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/sat-math.h:32,12'
          Branch Sides:
            - BranchSide:      'lib/sat-math.h:32,25'
              BranchSideFuncs: []
            - BranchSide:      'lib/sat-math.h:32,12'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    sat_mul
      functionSourceFile: '/src/openvswitch/lib/sat-math.h'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - x
        - y
      BBCount:         7
      ICount:          38
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/sat-math.h:84,12'
          Branch Sides:
            - BranchSide:      'lib/sat-math.h:84,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/sat-math.h:84,12'
              BranchSideFuncs: []
        - Branch String:   'lib/sat-math.h:84,12'
          Branch Sides:
            - BranchSide:      'lib/sat-math.h:84,12'
              BranchSideFuncs: []
            - BranchSide:      'lib/sat-math.h:84,12'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    token_bucket_withdraw
      functionSourceFile: '/src/openvswitch/lib/token-bucket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 83
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - tb
        - n
      BBCount:         18
      ICount:          139
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - sat_add
        - sat_mul
        - time_msec
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/token-bucket.c:64,9'
          Branch Sides:
            - BranchSide:      'lib/token-bucket.c:65,29'
              BranchSideFuncs:
                - time_msec
                - sat_mul
                - sat_add
            - BranchSide:      'lib/token-bucket.c:81,19'
              BranchSideFuncs: []
        - Branch String:   'lib/token-bucket.c:66,13'
          Branch Sides:
            - BranchSide:      'lib/token-bucket.c:68,44'
              BranchSideFuncs:
                - sat_mul
                - sat_add
            - BranchSide:      'lib/token-bucket.c:76,13'
              BranchSideFuncs: []
        - Branch String:   'lib/token-bucket.c:69,36'
          Branch Sides:
            - BranchSide:      'lib/token-bucket.c:69,36'
              BranchSideFuncs:
                - sat_mul
                - sat_add
            - BranchSide:      'lib/token-bucket.c:69,36'
              BranchSideFuncs:
                - sat_mul
                - sat_add
        - Branch String:   'lib/token-bucket.c:72,26'
          Branch Sides:
            - BranchSide:      'lib/token-bucket.c:72,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/token-bucket.c:72,13'
              BranchSideFuncs: []
        - Branch String:   'lib/token-bucket.c:76,13'
          Branch Sides:
            - BranchSide:      'lib/token-bucket.c:77,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/token-bucket.c:79,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/token-bucket.c:65,29'
          Dst:             time_msec
        - Src:             'lib/token-bucket.c:70,32'
          Dst:             sat_mul
        - Src:             'lib/token-bucket.c:71,35'
          Dst:             sat_add
    - functionName:    token_bucket_set
      functionSourceFile: '/src/openvswitch/lib/token-bucket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - tb
        - rate
        - burst
      BBCount:         4
      ICount:          40
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/token-bucket.c:53,9'
          Branch Sides:
            - BranchSide:      'lib/token-bucket.c:53,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/token-bucket.c:54,22'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    token_bucket_init
      functionSourceFile: '/src/openvswitch/lib/token-bucket.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - tb
        - rate
        - burst
      BBCount:         1
      ICount:          27
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_this_module_daemon_unix
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/daemon-unix.c:46,1'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:46,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/daemon-unix.c:46,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/daemon-unix.c:46,1'
          Dst:             vlog_insert_module
    - functionName:    lock_pidfile__
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 557
      functionLinenumberEnd: 569
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - file
        - command
        - lck
      BBCount:         10
      ICount:          70
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - fcntl
        - fileno
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/daemon-unix.c:567,17'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:567,59'
              BranchSideFuncs:
                - __errno_location
                - fileno
                - fcntl
            - BranchSide:      'lib/daemon-unix.c:567,15'
              BranchSideFuncs:
                - fileno
                - fcntl
                - __errno_location
        - Branch String:   'lib/daemon-unix.c:568,5'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:567,30'
              BranchSideFuncs:
                - fileno
                - fcntl
                - __errno_location
            - BranchSide:      'lib/daemon-unix.c:569,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/daemon-unix.c:567,23'
          Dst:             fileno
        - Src:             'lib/daemon-unix.c:567,17'
          Dst:             fcntl
        - Src:             'lib/daemon-unix.c:567,59'
          Dst:             __errno_location
    - functionName:    fileno
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    check_already_running
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 702
      functionLinenumberEnd: 710
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         8
      ICount:          46
      EdgeCount:       8
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_strerror
        - read_pidfile__
        - vlog_fatal
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/daemon-unix.c:703,35'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:703,14'
              BranchSideFuncs:
                - read_pidfile__
                - ovs_strerror
                - vlog_fatal
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:703,35'
              BranchSideFuncs:
                - read_pidfile__
                - ovs_strerror
                - vlog_fatal
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:704,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:705,9'
              BranchSideFuncs:
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:706,16'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_fatal
      Callsites:
        - Src:             'lib/daemon-unix.c:703,20'
          Dst:             read_pidfile__
        - Src:             'lib/daemon-unix.c:705,9'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:707,9'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:707,9'
          Dst:             vlog_fatal
    - functionName:    read_pidfile__
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 582
      functionLinenumberEnd: 688
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - pidfile_
        - delete_if_stale
      BBCount:         103
      ICount:          507
      EdgeCount:       134
      CyclomaticComplexity: 33
      functionsReached:
        - __errno_location
        - fclose
        - ferror
        - fgets
        - fileno
        - fopen
        - fstat
        - getpid
        - lock_pidfile
        - lock_pidfile__
        - ovs_strerror
        - stat
        - strtoul
        - unlink
        - vlog
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/daemon-unix.c:589,22'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:589,25'
              BranchSideFuncs:
                - stat
                - fopen
                - __errno_location
                - __errno_location
                - fclose
                - ovs_strerror
                - vlog
                - lock_pidfile__
                - fgets
                - ferror
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - strtoul
                - fclose
                - vlog
                - vlog
                - lock_pidfile
                - stat
                - fileno
                - fstat
                - unlink
                - fclose
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog
                - vlog
                - ovs_strerror
                - vlog
                - getpid
            - BranchSide:      'lib/daemon-unix.c:590,18'
              BranchSideFuncs:
                - stat
                - fopen
                - __errno_location
                - __errno_location
                - fclose
                - ovs_strerror
                - vlog
                - lock_pidfile__
                - fgets
                - ferror
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - strtoul
                - fclose
                - vlog
                - vlog
                - lock_pidfile
                - stat
                - fileno
                - fstat
                - unlink
                - fclose
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog
                - vlog
                - ovs_strerror
                - vlog
                - getpid
        - Branch String:   'lib/daemon-unix.c:590,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:590,18'
              BranchSideFuncs:
                - stat
                - fopen
                - __errno_location
                - __errno_location
                - fclose
                - ovs_strerror
                - vlog
                - lock_pidfile__
                - fgets
                - ferror
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - strtoul
                - fclose
                - vlog
                - vlog
                - lock_pidfile
                - stat
                - fileno
                - fstat
                - unlink
                - fclose
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog
                - vlog
                - ovs_strerror
                - vlog
                - getpid
            - BranchSide:      'lib/daemon-unix.c:600,18'
              BranchSideFuncs:
                - fopen
                - __errno_location
                - __errno_location
                - fclose
                - ovs_strerror
                - vlog
                - lock_pidfile__
                - fgets
                - ferror
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - strtoul
                - fclose
                - vlog
                - vlog
                - lock_pidfile
                - stat
                - fileno
                - fstat
                - unlink
                - fclose
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog
                - vlog
                - ovs_strerror
                - vlog
        - Branch String:   'lib/daemon-unix.c:591,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:591,14'
              BranchSideFuncs:
                - fopen
                - __errno_location
                - __errno_location
                - fclose
                - ovs_strerror
                - vlog
                - lock_pidfile__
                - fgets
                - ferror
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - strtoul
                - fclose
                - vlog
                - vlog
                - lock_pidfile
                - stat
                - fileno
                - fstat
                - unlink
                - fclose
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog
                - vlog
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/daemon-unix.c:600,18'
              BranchSideFuncs:
                - fopen
                - __errno_location
                - __errno_location
                - fclose
                - ovs_strerror
                - vlog
                - lock_pidfile__
                - fgets
                - ferror
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - strtoul
                - fclose
                - vlog
                - vlog
                - lock_pidfile
                - stat
                - fileno
                - fstat
                - unlink
                - fclose
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog
                - vlog
                - ovs_strerror
                - vlog
        - Branch String:   'lib/daemon-unix.c:591,36'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:591,41'
              BranchSideFuncs:
                - fopen
                - __errno_location
                - __errno_location
                - fclose
                - ovs_strerror
                - vlog
                - lock_pidfile__
                - fgets
                - ferror
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - strtoul
                - fclose
                - vlog
                - vlog
                - lock_pidfile
                - stat
                - fileno
                - fstat
                - unlink
                - fclose
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog
                - vlog
                - ovs_strerror
                - vlog
                - getpid
            - BranchSide:      'lib/daemon-unix.c:600,18'
              BranchSideFuncs:
                - fopen
                - __errno_location
                - __errno_location
                - fclose
                - ovs_strerror
                - vlog
                - lock_pidfile__
                - fgets
                - ferror
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - strtoul
                - fclose
                - vlog
                - vlog
                - lock_pidfile
                - stat
                - fileno
                - fstat
                - unlink
                - fclose
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog
                - vlog
                - ovs_strerror
                - vlog
        - Branch String:   'lib/daemon-unix.c:589,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:597,16'
              BranchSideFuncs:
                - getpid
            - BranchSide:      'lib/daemon-unix.c:600,18'
              BranchSideFuncs:
                - fopen
                - __errno_location
                - __errno_location
                - fclose
                - ovs_strerror
                - vlog
                - lock_pidfile__
                - fgets
                - ferror
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - strtoul
                - fclose
                - vlog
                - vlog
                - lock_pidfile
                - stat
                - fileno
                - fstat
                - unlink
                - fclose
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog
                - vlog
                - ovs_strerror
                - vlog
        - Branch String:   'lib/daemon-unix.c:601,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:602,13'
              BranchSideFuncs:
                - lock_pidfile__
                - fgets
                - ferror
                - fclose
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - strtoul
                - fclose
                - vlog
                - vlog
                - lock_pidfile
                - stat
                - fileno
                - fstat
                - unlink
                - fclose
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog
                - vlog
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/daemon-unix.c:610,28'
              BranchSideFuncs:
                - lock_pidfile__
                - fgets
                - ferror
                - fclose
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - strtoul
                - fclose
                - vlog
                - vlog
                - lock_pidfile
                - stat
                - fileno
                - fstat
                - unlink
                - fclose
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog
                - vlog
                - ovs_strerror
                - vlog
        - Branch String:   'lib/daemon-unix.c:602,29'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:602,32'
              BranchSideFuncs:
                - __errno_location
                - fclose
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/daemon-unix.c:605,17'
              BranchSideFuncs:
                - __errno_location
                - fclose
                - ovs_strerror
                - vlog
        - Branch String:   'lib/daemon-unix.c:602,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:603,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/daemon-unix.c:605,17'
              BranchSideFuncs:
                - __errno_location
                - fclose
                - ovs_strerror
                - vlog
        - Branch String:   'lib/daemon-unix.c:606,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:606,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
                - fclose
            - BranchSide:      'lib/daemon-unix.c:607,9'
              BranchSideFuncs:
                - fclose
        - Branch String:   'lib/daemon-unix.c:611,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:612,9'
              BranchSideFuncs:
                - fclose
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/daemon-unix.c:615,13'
              BranchSideFuncs:
                - fgets
                - ferror
                - fclose
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - strtoul
                - fclose
                - vlog
                - vlog
                - lock_pidfile
                - stat
                - fileno
                - fstat
                - unlink
                - fclose
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog
                - vlog
        - Branch String:   'lib/daemon-unix.c:612,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:612,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
                - fclose
            - BranchSide:      'lib/daemon-unix.c:613,9'
              BranchSideFuncs:
                - fclose
        - Branch String:   'lib/daemon-unix.c:615,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:623,14'
              BranchSideFuncs:
                - fclose
                - vlog
                - lock_pidfile
                - stat
                - fileno
                - fstat
                - unlink
                - fclose
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog
                - vlog
            - BranchSide:      'lib/daemon-unix.c:659,16'
              BranchSideFuncs:
                - fgets
                - ferror
                - fclose
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
                - strtoul
                - fclose
                - vlog
        - Branch String:   'lib/daemon-unix.c:623,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:624,19'
              BranchSideFuncs:
                - lock_pidfile
                - stat
                - fileno
                - fstat
                - unlink
                - fclose
                - vlog
                - __errno_location
                - fclose
                - ovs_strerror
                - vlog
                - vlog
                - vlog
            - BranchSide:      'lib/daemon-unix.c:630,30'
              BranchSideFuncs:
                - lock_pidfile
                - stat
                - fileno
                - fstat
                - unlink
                - fclose
                - vlog
                - __errno_location
                - fclose
                - ovs_strerror
                - vlog
                - vlog
                - vlog
        - Branch String:   'lib/daemon-unix.c:625,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:625,13'
              BranchSideFuncs:
                - vlog
                - fclose
            - BranchSide:      'lib/daemon-unix.c:626,13'
              BranchSideFuncs:
                - fclose
        - Branch String:   'lib/daemon-unix.c:631,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:633,13'
              BranchSideFuncs:
                - fclose
                - vlog
            - BranchSide:      'lib/daemon-unix.c:638,18'
              BranchSideFuncs:
                - stat
                - fileno
                - fstat
                - unlink
                - fclose
                - vlog
                - __errno_location
                - fclose
                - ovs_strerror
                - vlog
                - vlog
        - Branch String:   'lib/daemon-unix.c:633,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:633,13'
              BranchSideFuncs:
                - vlog
                - fclose
            - BranchSide:      'lib/daemon-unix.c:634,13'
              BranchSideFuncs:
                - fclose
        - Branch String:   'lib/daemon-unix.c:638,32'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:638,48'
              BranchSideFuncs:
                - fclose
                - vlog
            - BranchSide:      'lib/daemon-unix.c:642,19'
              BranchSideFuncs:
                - fclose
                - vlog
        - Branch String:   'lib/daemon-unix.c:639,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:639,18'
              BranchSideFuncs:
                - fclose
                - vlog
            - BranchSide:      'lib/daemon-unix.c:642,19'
              BranchSideFuncs:
                - fclose
                - vlog
        - Branch String:   'lib/daemon-unix.c:639,38'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:639,43'
              BranchSideFuncs:
                - fclose
                - vlog
            - BranchSide:      'lib/daemon-unix.c:642,19'
              BranchSideFuncs:
                - fclose
                - vlog
        - Branch String:   'lib/daemon-unix.c:638,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:642,19'
              BranchSideFuncs:
                - fclose
                - vlog
            - BranchSide:      'lib/daemon-unix.c:648,20'
              BranchSideFuncs:
                - unlink
                - fclose
                - vlog
                - __errno_location
                - fclose
                - ovs_strerror
                - vlog
        - Branch String:   'lib/daemon-unix.c:643,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:643,13'
              BranchSideFuncs:
                - vlog
                - fclose
            - BranchSide:      'lib/daemon-unix.c:644,13'
              BranchSideFuncs:
                - fclose
        - Branch String:   'lib/daemon-unix.c:648,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:649,21'
              BranchSideFuncs:
                - __errno_location
                - fclose
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/daemon-unix.c:654,9'
              BranchSideFuncs:
                - fclose
                - vlog
        - Branch String:   'lib/daemon-unix.c:650,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:650,13'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
                - fclose
            - BranchSide:      'lib/daemon-unix.c:652,13'
              BranchSideFuncs:
                - fclose
        - Branch String:   'lib/daemon-unix.c:654,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:654,9'
              BranchSideFuncs:
                - vlog
                - fclose
            - BranchSide:      'lib/daemon-unix.c:655,16'
              BranchSideFuncs:
                - fclose
        - Branch String:   'lib/daemon-unix.c:659,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:660,20'
              BranchSideFuncs:
                - strtoul
                - fclose
                - fclose
                - vlog
            - BranchSide:      'lib/daemon-unix.c:670,13'
              BranchSideFuncs:
                - strtoul
                - fclose
                - fclose
                - vlog
        - Branch String:   'lib/daemon-unix.c:660,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:661,21'
              BranchSideFuncs:
                - __errno_location
                - fclose
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/daemon-unix.c:664,19'
              BranchSideFuncs:
                - fclose
                - vlog
        - Branch String:   'lib/daemon-unix.c:662,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:662,13'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
                - fclose
            - BranchSide:      'lib/daemon-unix.c:663,9'
              BranchSideFuncs:
                - fclose
        - Branch String:   'lib/daemon-unix.c:665,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:0,0'
              BranchSideFuncs:
                - vlog
                - fclose
            - BranchSide:      'lib/daemon-unix.c:665,13'
              BranchSideFuncs:
                - vlog
                - fclose
        - Branch String:   'lib/daemon-unix.c:670,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:674,15'
              BranchSideFuncs:
                - fclose
                - vlog
            - BranchSide:      'lib/daemon-unix.c:680,12'
              BranchSideFuncs:
                - fclose
        - Branch String:   'lib/daemon-unix.c:675,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:675,9'
              BranchSideFuncs:
                - vlog
                - fclose
            - BranchSide:      'lib/daemon-unix.c:677,9'
              BranchSideFuncs:
                - fclose
        - Branch String:   'lib/daemon-unix.c:684,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:685,16'
              BranchSideFuncs:
                - fclose
            - BranchSide:      'lib/daemon-unix.c:687,13'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/daemon-unix.c:590,13'
          Dst:             stat
        - Src:             'lib/daemon-unix.c:597,16'
          Dst:             getpid
        - Src:             'lib/daemon-unix.c:600,12'
          Dst:             fopen
        - Src:             'lib/daemon-unix.c:602,13'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:605,17'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:606,9'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:606,9'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:610,13'
          Dst:             lock_pidfile__
        - Src:             'lib/daemon-unix.c:612,9'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:612,9'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:625,13'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:630,17'
          Dst:             lock_pidfile
        - Src:             'lib/daemon-unix.c:633,13'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:638,13'
          Dst:             stat
        - Src:             'lib/daemon-unix.c:638,41'
          Dst:             fileno
        - Src:             'lib/daemon-unix.c:638,35'
          Dst:             fstat
        - Src:             'lib/daemon-unix.c:643,13'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:648,13'
          Dst:             unlink
        - Src:             'lib/daemon-unix.c:649,21'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:650,13'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:650,13'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:654,9'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:655,9'
          Dst:             fclose
        - Src:             'lib/daemon-unix.c:659,10'
          Dst:             fgets
        - Src:             'lib/daemon-unix.c:660,13'
          Dst:             ferror
        - Src:             'lib/daemon-unix.c:661,21'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:662,13'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:662,13'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:665,13'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:670,22'
          Dst:             strtoul
        - Src:             'lib/daemon-unix.c:675,9'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:680,5'
          Dst:             fclose
        - Src:             'lib/daemon-unix.c:685,9'
          Dst:             fclose
    - functionName:    lock_pidfile
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 574
      functionLinenumberEnd: 577
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - file
        - command
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lock_pidfile__
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:577,12'
          Dst:             lock_pidfile__
    - functionName:    strtoul
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    should_restart
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 323
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - status
      BBCount:         11
      ICount:          57
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/daemon-unix.c:324,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:334,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/daemon-unix.c:340,5'
              BranchSideFuncs: []
        - Branch String:   'lib/daemon-unix.c:334,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:335,31'
              BranchSideFuncs: []
            - BranchSide:      'lib/daemon-unix.c:339,5'
              BranchSideFuncs: []
        - Branch String:   'lib/daemon-unix.c:335,17'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:336,17'
              BranchSideFuncs: []
            - BranchSide:      'lib/daemon-unix.c:338,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    fork_and_clean_up
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          39
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fatal_signal_fork
        - lockfile_postfork
        - xfork_at
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/daemon-unix.c:230,17'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:230,11'
              BranchSideFuncs:
                - xfork_at
                - lockfile_postfork
                - fatal_signal_fork
            - BranchSide:      'lib/daemon-unix.c:230,17'
              BranchSideFuncs:
                - xfork_at
                - lockfile_postfork
                - fatal_signal_fork
        - Branch String:   'lib/daemon-unix.c:231,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:233,9'
              BranchSideFuncs:
                - fatal_signal_fork
            - BranchSide:      'lib/daemon-unix.c:234,17'
              BranchSideFuncs:
                - lockfile_postfork
      Callsites:
        - Src:             'lib/daemon-unix.c:230,17'
          Dst:             xfork_at
        - Src:             'lib/daemon-unix.c:233,9'
          Dst:             fatal_signal_fork
        - Src:             'lib/daemon-unix.c:236,9'
          Dst:             lockfile_postfork
    - functionName:    enlarge_buffer
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 958
      functionLinenumberEnd: 968
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - buf
        - sizep
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - xrealloc
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/daemon-unix.c:961,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:962,26'
              BranchSideFuncs:
                - xrealloc
            - BranchSide:      'lib/daemon-unix.c:967,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/daemon-unix.c:962,16'
          Dst:             xrealloc
    - functionName:    get_sysconf_buffer_size
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 917
      functionLinenumberEnd: 950
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         21
      ICount:          115
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - ovs_strerror
        - sysconf
        - vlog_fatal
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/daemon-unix.c:918,18'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:918,18'
              BranchSideFuncs:
                - __errno_location
                - sysconf
                - __errno_location
                - sysconf
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:918,18'
              BranchSideFuncs:
                - __errno_location
                - sysconf
                - __errno_location
                - sysconf
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:923,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:924,13'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - sysconf
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:936,5'
              BranchSideFuncs:
                - __errno_location
                - sysconf
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:924,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:925,13'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:932,20'
              BranchSideFuncs:
                - __errno_location
                - sysconf
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:937,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:938,13'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:949,15'
              BranchSideFuncs: []
        - Branch String:   'lib/daemon-unix.c:938,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:939,13'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:945,20'
              BranchSideFuncs: []
        - Branch String:   'lib/daemon-unix.c:949,15'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:949,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/daemon-unix.c:949,13'
              BranchSideFuncs: []
        - Branch String:   'lib/daemon-unix.c:950,12'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:950,22'
              BranchSideFuncs: []
            - BranchSide:      'lib/daemon-unix.c:950,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/daemon-unix.c:922,5'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:923,19'
          Dst:             sysconf
        - Src:             'lib/daemon-unix.c:924,13'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:925,13'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:925,13'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:925,13'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:936,5'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:937,19'
          Dst:             sysconf
        - Src:             'lib/daemon-unix.c:938,13'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:939,13'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:939,13'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:939,13'
          Dst:             vlog_fatal
    - functionName:    daemon_set_new_user
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 983
      functionLinenumberEnd: 1085
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - user_spec
      BBCount:         60
      ICount:          346
      EdgeCount:       74
      CyclomaticComplexity: 16
      functionsReached:
        - enlarge_buffer
        - get_sysconf_buffer_size
        - geteuid
        - getgid
        - getgrnam_r
        - getpwnam_r
        - getpwuid_r
        - getuid
        - ovs_strerror
        - strchr
        - strcmp
        - strlen
        - strspn
        - vlog_fatal
        - xmalloc
        - xmemdup0
        - xstrdup
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/daemon-unix.c:991,19'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:991,22'
              BranchSideFuncs:
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:992,9'
              BranchSideFuncs:
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:991,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:992,9'
              BranchSideFuncs:
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:995,25'
              BranchSideFuncs:
                - strspn
                - strlen
                - xmalloc
                - getpwuid_r
                - xstrdup
                - free
                - strspn
                - xmalloc
                - getgrnam_r
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
                - xmemdup0
                - getpwnam_r
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
        - Branch String:   'lib/daemon-unix.c:996,18'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:996,24'
              BranchSideFuncs:
                - xmalloc
                - getpwuid_r
                - xstrdup
                - free
                - strspn
                - xmalloc
                - getgrnam_r
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
                - xmemdup0
                - getpwnam_r
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
            - BranchSide:      'lib/daemon-unix.c:996,49'
              BranchSideFuncs:
                - strlen
                - xmalloc
                - getpwuid_r
                - xstrdup
                - free
                - strspn
                - xmalloc
                - getgrnam_r
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
                - xmemdup0
                - getpwnam_r
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
        - Branch String:   'lib/daemon-unix.c:1003,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:1004,25'
              BranchSideFuncs:
                - xmemdup0
                - getpwnam_r
                - free
                - strspn
                - xmalloc
                - getgrnam_r
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
            - BranchSide:      'lib/daemon-unix.c:1021,9'
              BranchSideFuncs:
                - getpwuid_r
                - xstrdup
                - free
                - strspn
                - xmalloc
                - getgrnam_r
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
        - Branch String:   'lib/daemon-unix.c:1006,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:1007,18'
              BranchSideFuncs:
                - enlarge_buffer
                - free
                - strspn
                - xmalloc
                - getgrnam_r
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - getpwnam_r
            - BranchSide:      'lib/daemon-unix.c:1012,13'
              BranchSideFuncs:
                - free
                - strspn
                - xmalloc
                - getgrnam_r
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:1007,17'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:1006,9'
              BranchSideFuncs:
                - getpwnam_r
                - free
                - strspn
                - xmalloc
                - getgrnam_r
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
            - BranchSide:      'lib/daemon-unix.c:1008,17'
              BranchSideFuncs:
                - free
                - strspn
                - xmalloc
                - getgrnam_r
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:1012,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:1013,13'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:1016,13'
              BranchSideFuncs:
                - free
                - strspn
                - xmalloc
                - getgrnam_r
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:1016,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:1017,13'
              BranchSideFuncs:
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:1019,5'
              BranchSideFuncs:
                - free
                - strspn
                - xmalloc
                - getgrnam_r
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
        - Branch String:   'lib/daemon-unix.c:1021,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:1022,18'
              BranchSideFuncs:
                - enlarge_buffer
                - xstrdup
                - free
                - strspn
                - xmalloc
                - getgrnam_r
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
                - ovs_strerror
                - vlog_fatal
                - getpwuid_r
            - BranchSide:      'lib/daemon-unix.c:1027,13'
              BranchSideFuncs:
                - xstrdup
                - free
                - strspn
                - xmalloc
                - getgrnam_r
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:1022,17'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:1021,9'
              BranchSideFuncs:
                - getpwuid_r
                - xstrdup
                - free
                - strspn
                - xmalloc
                - getgrnam_r
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
            - BranchSide:      'lib/daemon-unix.c:1023,17'
              BranchSideFuncs:
                - xstrdup
                - free
                - strspn
                - xmalloc
                - getgrnam_r
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:1027,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:1028,13'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:1031,28'
              BranchSideFuncs:
                - xstrdup
                - free
                - strspn
                - xmalloc
                - getgrnam_r
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
        - Branch String:   'lib/daemon-unix.c:1038,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:1038,9'
              BranchSideFuncs:
                - strspn
                - xmalloc
                - getgrnam_r
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
            - BranchSide:      'lib/daemon-unix.c:1039,24'
              BranchSideFuncs:
                - strspn
                - xmalloc
                - getgrnam_r
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
        - Branch String:   'lib/daemon-unix.c:1042,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:1045,23'
              BranchSideFuncs:
                - xmalloc
                - getgrnam_r
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
            - BranchSide:      'lib/daemon-unix.c:1082,5'
              BranchSideFuncs: []
        - Branch String:   'lib/daemon-unix.c:1047,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:1049,22'
              BranchSideFuncs:
                - enlarge_buffer
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - getgrnam_r
            - BranchSide:      'lib/daemon-unix.c:1054,17'
              BranchSideFuncs:
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:1049,21'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:1047,13'
              BranchSideFuncs:
                - getgrnam_r
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - enlarge_buffer
            - BranchSide:      'lib/daemon-unix.c:1050,21'
              BranchSideFuncs:
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:1054,17'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:1055,17'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:1059,17'
              BranchSideFuncs:
                - free
                - vlog_fatal
                - strcmp
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:1059,17'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:1060,17'
              BranchSideFuncs:
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:1064,17'
              BranchSideFuncs:
                - free
                - vlog_fatal
                - strcmp
        - Branch String:   'lib/daemon-unix.c:1064,17'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:1067,32'
              BranchSideFuncs:
                - vlog_fatal
                - free
                - strcmp
            - BranchSide:      'lib/daemon-unix.c:1080,18'
              BranchSideFuncs:
                - free
        - Branch String:   'lib/daemon-unix.c:1067,17'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:1068,34'
              BranchSideFuncs:
                - strcmp
                - vlog_fatal
                - free
            - BranchSide:      'lib/daemon-unix.c:1073,23'
              BranchSideFuncs:
                - vlog_fatal
                - free
        - Branch String:   'lib/daemon-unix.c:1068,25'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:1069,25'
              BranchSideFuncs:
                - vlog_fatal
                - free
                - strcmp
            - BranchSide:      'lib/daemon-unix.c:1071,17'
              BranchSideFuncs:
                - vlog_fatal
                - free
                - strcmp
        - Branch String:   'lib/daemon-unix.c:1073,21'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:1074,21'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/daemon-unix.c:1078,27'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'lib/daemon-unix.c:984,17'
          Dst:             strchr
        - Src:             'lib/daemon-unix.c:987,20'
          Dst:             get_sysconf_buffer_size
        - Src:             'lib/daemon-unix.c:988,11'
          Dst:             getuid
        - Src:             'lib/daemon-unix.c:989,11'
          Dst:             getgid
        - Src:             'lib/daemon-unix.c:991,9'
          Dst:             geteuid
        - Src:             'lib/daemon-unix.c:992,9'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:995,18'
          Dst:             strspn
        - Src:             'lib/daemon-unix.c:996,42'
          Dst:             strlen
        - Src:             'lib/daemon-unix.c:1002,11'
          Dst:             xmalloc
        - Src:             'lib/daemon-unix.c:1004,16'
          Dst:             xmemdup0
        - Src:             'lib/daemon-unix.c:1006,21'
          Dst:             getpwnam_r
        - Src:             'lib/daemon-unix.c:1007,18'
          Dst:             enlarge_buffer
        - Src:             'lib/daemon-unix.c:1013,13'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:1013,13'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:1017,13'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:1021,21'
          Dst:             getpwuid_r
        - Src:             'lib/daemon-unix.c:1022,18'
          Dst:             enlarge_buffer
        - Src:             'lib/daemon-unix.c:1028,13'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:1028,13'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:1031,16'
          Dst:             xstrdup
        - Src:             'lib/daemon-unix.c:1040,19'
          Dst:             strspn
        - Src:             'lib/daemon-unix.c:1046,19'
          Dst:             xmalloc
        - Src:             'lib/daemon-unix.c:1047,25'
          Dst:             getgrnam_r
        - Src:             'lib/daemon-unix.c:1049,22'
          Dst:             enlarge_buffer
        - Src:             'lib/daemon-unix.c:1055,17'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:1055,17'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:1060,17'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:1068,26'
          Dst:             strcmp
        - Src:             'lib/daemon-unix.c:1074,21'
          Dst:             vlog_fatal
    - functionName:    getuid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getgid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    geteuid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getpwnam_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getpwuid_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getgrnam_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    daemon_become_new_user
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 898
      functionLinenumberEnd: 905
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - bool
        - bool
      constantsTouched: []
      argNames:
        - access_datapath
        - access_hardware_ports
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - assert_single_threaded_at
        - daemon_become_new_user__
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/daemon-unix.c:900,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:900,9'
              BranchSideFuncs:
                - daemon_become_new_user__
            - BranchSide:      'lib/daemon-unix.c:901,34'
              BranchSideFuncs:
                - daemon_become_new_user__
      Callsites:
        - Src:             'lib/daemon-unix.c:899,5'
          Dst:             assert_single_threaded_at
        - Src:             'lib/daemon-unix.c:901,9'
          Dst:             daemon_become_new_user__
    - functionName:    daemon_become_new_user__
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 873
      functionLinenumberEnd: 884
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - bool
        - bool
      constantsTouched: []
      argNames:
        - access_datapath
        - access_hardware_ports
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_change_owner_unix
        - vlog_fatal
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:877,5'
          Dst:             vlog_change_owner_unix
        - Src:             'lib/daemon-unix.c:884,13'
          Dst:             vlog_fatal
    - functionName:    should_service_stop
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 727
      functionLinenumberEnd: 728
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    service_stop
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 722
      functionLinenumberEnd: 723
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    service_start
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 717
      functionLinenumberEnd: 718
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - argc
        - argv
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    read_pidfile
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 694
      functionLinenumberEnd: 695
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pidfile_
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - read_pidfile__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon-unix.c:695,12'
          Dst:             read_pidfile__
    - functionName:    daemon_usage
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 542
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          14
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_rundir
        - printf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/daemon-unix.c:552,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:552,9'
              BranchSideFuncs:
                - ovs_rundir
                - printf
            - BranchSide:      'lib/daemon-unix.c:552,9'
              BranchSideFuncs:
                - ovs_rundir
                - printf
      Callsites:
        - Src:             'lib/daemon-unix.c:552,9'
          Dst:             ovs_rundir
        - Src:             'lib/daemon-unix.c:543,5'
          Dst:             printf
    - functionName:    daemonize_post_detach
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          35
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - chdir
        - close_standard_fds
        - ignore
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/daemon-unix.c:532,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:532,9'
              BranchSideFuncs:
                - close_standard_fds
                - chdir
                - ignore
            - BranchSide:      'lib/daemon-unix.c:532,9'
              BranchSideFuncs:
                - close_standard_fds
                - chdir
                - ignore
        - Branch String:   'lib/daemon-unix.c:532,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:532,9'
              BranchSideFuncs:
                - close_standard_fds
                - chdir
                - ignore
            - BranchSide:      'lib/daemon-unix.c:533,13'
              BranchSideFuncs:
                - close_standard_fds
                - chdir
                - ignore
        - Branch String:   'lib/daemon-unix.c:533,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:534,20'
              BranchSideFuncs:
                - chdir
                - ignore
                - close_standard_fds
            - BranchSide:      'lib/daemon-unix.c:536,9'
              BranchSideFuncs:
                - close_standard_fds
      Callsites:
        - Src:             'lib/daemon-unix.c:534,20'
          Dst:             chdir
        - Src:             'lib/daemon-unix.c:534,13'
          Dst:             ignore
        - Src:             'lib/daemon-unix.c:536,9'
          Dst:             close_standard_fds
    - functionName:    chdir
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    daemonize_complete
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 508
      functionLinenumberEnd: 520
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          40
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - daemonize_post_detach
        - fork_notify_startup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/daemon-unix.c:509,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:509,9'
              BranchSideFuncs:
                - fork_notify_startup
                - daemonize_post_detach
                - free
            - BranchSide:      'lib/daemon-unix.c:509,9'
              BranchSideFuncs:
                - fork_notify_startup
                - daemonize_post_detach
                - free
        - Branch String:   'lib/daemon-unix.c:509,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:510,14'
              BranchSideFuncs:
                - free
                - fork_notify_startup
                - daemonize_post_detach
            - BranchSide:      'lib/daemon-unix.c:514,10'
              BranchSideFuncs:
                - fork_notify_startup
                - daemonize_post_detach
        - Branch String:   'lib/daemon-unix.c:514,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:514,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/daemon-unix.c:515,18'
              BranchSideFuncs:
                - fork_notify_startup
                - daemonize_post_detach
      Callsites:
        - Src:             'lib/daemon-unix.c:517,9'
          Dst:             fork_notify_startup
        - Src:             'lib/daemon-unix.c:518,9'
          Dst:             daemonize_post_detach
    - functionName:    fork_notify_startup
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - fd
      BBCount:         8
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_strerror
        - vlog_fatal
        - write_fully
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/daemon-unix.c:310,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:310,9'
              BranchSideFuncs:
                - write_fully
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:314,29'
              BranchSideFuncs:
                - write_fully
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:315,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:316,13'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:318,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/daemon-unix.c:314,17'
          Dst:             write_fully
        - Src:             'lib/daemon-unix.c:316,13'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:316,13'
          Dst:             vlog_fatal
    - functionName:    make_pidfile
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         21
      ICount:          168
      EdgeCount:       23
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - check_already_running
        - fatal_signal_add_file_to_unlink
        - fatal_signal_remove_file_to_unlink
        - fflush
        - fileno
        - fopen
        - fprintf
        - fstat
        - ftruncate
        - getpid
        - lock_pidfile
        - ovs_strerror
        - rename
        - vlog_fatal
        - xasprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/daemon-unix.c:147,20'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:147,14'
              BranchSideFuncs:
                - getpid
                - xasprintf
                - fopen
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - lock_pidfile
                - fatal_signal_add_file_to_unlink
                - check_already_running
                - fileno
                - fstat
                - fileno
                - ftruncate
                - fprintf
                - fflush
                - rename
                - fatal_signal_remove_file_to_unlink
                - fatal_signal_add_file_to_unlink
                - free
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - xasprintf
                - fatal_signal_add_file_to_unlink
            - BranchSide:      'lib/daemon-unix.c:147,20'
              BranchSideFuncs:
                - getpid
                - xasprintf
                - fopen
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - lock_pidfile
                - fatal_signal_add_file_to_unlink
                - check_already_running
                - fileno
                - fstat
                - fileno
                - ftruncate
                - fprintf
                - fflush
                - rename
                - fatal_signal_remove_file_to_unlink
                - fatal_signal_add_file_to_unlink
                - free
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
                - xasprintf
                - fatal_signal_add_file_to_unlink
        - Branch String:   'lib/daemon-unix.c:154,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:155,42'
              BranchSideFuncs:
                - xasprintf
                - fatal_signal_add_file_to_unlink
                - fopen
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - lock_pidfile
                - fatal_signal_add_file_to_unlink
                - check_already_running
                - fileno
                - fstat
                - fileno
                - ftruncate
                - fprintf
                - fflush
                - rename
                - fatal_signal_remove_file_to_unlink
                - fatal_signal_add_file_to_unlink
                - free
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:161,39'
              BranchSideFuncs:
                - xasprintf
                - fopen
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - lock_pidfile
                - fatal_signal_add_file_to_unlink
                - check_already_running
                - fileno
                - fstat
                - fileno
                - ftruncate
                - fprintf
                - fflush
                - rename
                - fatal_signal_remove_file_to_unlink
                - fatal_signal_add_file_to_unlink
                - free
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:165,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:166,9'
              BranchSideFuncs:
                - lock_pidfile
                - fatal_signal_add_file_to_unlink
                - check_already_running
                - fileno
                - fstat
                - fileno
                - ftruncate
                - fprintf
                - fflush
                - rename
                - fatal_signal_remove_file_to_unlink
                - fatal_signal_add_file_to_unlink
                - free
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:169,26'
              BranchSideFuncs:
                - lock_pidfile
                - fatal_signal_add_file_to_unlink
                - check_already_running
                - fileno
                - fstat
                - fileno
                - ftruncate
                - fprintf
                - fflush
                - rename
                - fatal_signal_remove_file_to_unlink
                - fatal_signal_add_file_to_unlink
                - free
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:170,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:174,9'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:178,10'
              BranchSideFuncs:
                - fatal_signal_add_file_to_unlink
                - check_already_running
                - fileno
                - fstat
                - fileno
                - ftruncate
                - fprintf
                - fflush
                - rename
                - fatal_signal_remove_file_to_unlink
                - fatal_signal_add_file_to_unlink
                - free
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:178,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:181,41'
              BranchSideFuncs:
                - fileno
                - fstat
                - fileno
                - ftruncate
                - fprintf
                - fflush
                - rename
                - fatal_signal_remove_file_to_unlink
                - fatal_signal_add_file_to_unlink
                - free
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:185,22'
              BranchSideFuncs:
                - fileno
                - fstat
                - fileno
                - ftruncate
                - fprintf
                - fflush
                - rename
                - fatal_signal_remove_file_to_unlink
                - fatal_signal_add_file_to_unlink
                - free
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:185,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:186,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:189,26'
              BranchSideFuncs:
                - fileno
                - ftruncate
                - fprintf
                - fflush
                - rename
                - fatal_signal_remove_file_to_unlink
                - fatal_signal_add_file_to_unlink
                - free
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:189,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:190,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:193,13'
              BranchSideFuncs:
                - fprintf
                - fflush
                - rename
                - fatal_signal_remove_file_to_unlink
                - fatal_signal_add_file_to_unlink
                - free
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:194,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:195,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:198,20'
              BranchSideFuncs:
                - rename
                - fatal_signal_remove_file_to_unlink
                - fatal_signal_add_file_to_unlink
                - free
                - __errno_location
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:204,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:205,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:210,37'
              BranchSideFuncs:
                - fatal_signal_add_file_to_unlink
                - free
      Callsites:
        - Src:             'lib/daemon-unix.c:147,20'
          Dst:             getpid
        - Src:             'lib/daemon-unix.c:155,19'
          Dst:             xasprintf
        - Src:             'lib/daemon-unix.c:156,9'
          Dst:             fatal_signal_add_file_to_unlink
        - Src:             'lib/daemon-unix.c:161,19'
          Dst:             xasprintf
        - Src:             'lib/daemon-unix.c:164,12'
          Dst:             fopen
        - Src:             'lib/daemon-unix.c:166,9'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:166,9'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:166,9'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:169,13'
          Dst:             lock_pidfile
        - Src:             'lib/daemon-unix.c:174,9'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:174,9'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:181,9'
          Dst:             fatal_signal_add_file_to_unlink
        - Src:             'lib/daemon-unix.c:182,9'
          Dst:             check_already_running
        - Src:             'lib/daemon-unix.c:185,15'
          Dst:             fileno
        - Src:             'lib/daemon-unix.c:185,9'
          Dst:             fstat
        - Src:             'lib/daemon-unix.c:186,9'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:186,9'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:186,9'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:189,19'
          Dst:             fileno
        - Src:             'lib/daemon-unix.c:189,9'
          Dst:             ftruncate
        - Src:             'lib/daemon-unix.c:190,9'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:190,9'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:190,9'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:193,5'
          Dst:             fprintf
        - Src:             'lib/daemon-unix.c:194,9'
          Dst:             fflush
        - Src:             'lib/daemon-unix.c:195,9'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:195,9'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:195,9'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:198,13'
          Dst:             rename
        - Src:             'lib/daemon-unix.c:202,5'
          Dst:             fatal_signal_remove_file_to_unlink
        - Src:             'lib/daemon-unix.c:205,9'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:205,9'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:205,9'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:210,5'
          Dst:             fatal_signal_add_file_to_unlink
    - functionName:    ftruncate
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rename
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    monitor_daemon
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - daemon_pid
      BBCount:         64
      ICount:          342
      EdgeCount:       79
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - close
        - exit
        - fork_and_wait_for_startup
        - log_received_backtrace
        - ovs_cmdl_proctitle_restore
        - ovs_cmdl_proctitle_set
        - ovs_strerror
        - process_status_msg
        - set_subprogram_name
        - setrlimit
        - should_restart
        - time
        - vlog
        - vlog_close_log_file
        - vlog_fatal
        - vlog_get_log_file
        - vlog_set_log_file
        - waitpid
        - xasprintf
        - xsleep
        - xstrdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/daemon-unix.c:363,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:364,30'
              BranchSideFuncs:
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - time
                - xsleep
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
                - ovs_strerror
                - vlog_fatal
                - __errno_location
            - BranchSide:      'lib/daemon-unix.c:378,14'
              BranchSideFuncs:
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - time
                - xsleep
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/daemon-unix.c:369,25'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:369,40'
              BranchSideFuncs:
                - __errno_location
                - vlog_set_log_file
                - free
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - time
                - xsleep
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:369,23'
              BranchSideFuncs:
                - vlog_set_log_file
                - free
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - time
                - xsleep
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:370,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:368,34'
              BranchSideFuncs:
                - waitpid
                - vlog_set_log_file
                - free
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - vlog_get_log_file
                - vlog_close_log_file
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - time
                - xsleep
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
                - ovs_strerror
                - vlog_fatal
                - __errno_location
            - BranchSide:      'lib/daemon-unix.c:371,31'
              BranchSideFuncs:
                - vlog_set_log_file
                - free
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - time
                - xsleep
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:373,17'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:374,17'
              BranchSideFuncs:
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:376,9'
              BranchSideFuncs:
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - time
                - xsleep
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/daemon-unix.c:378,26'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:378,29'
              BranchSideFuncs:
                - ovs_cmdl_proctitle_set
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - time
                - xsleep
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
            - BranchSide:      'lib/daemon-unix.c:379,42'
              BranchSideFuncs:
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - time
                - xsleep
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/daemon-unix.c:378,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:356,5'
              BranchSideFuncs:
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - time
                - xsleep
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/daemon-unix.c:379,42'
              BranchSideFuncs:
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - time
                - xsleep
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/daemon-unix.c:380,17'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:381,22'
              BranchSideFuncs:
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - time
                - xsleep
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/daemon-unix.c:427,17'
              BranchSideFuncs:
                - free
                - exit
                - vlog
        - Branch String:   'lib/daemon-unix.c:387,21'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:391,23'
              BranchSideFuncs:
                - setrlimit
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - time
                - xsleep
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/daemon-unix.c:399,40'
              BranchSideFuncs:
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - time
                - xsleep
                - vlog
        - Branch String:   'lib/daemon-unix.c:393,25'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:394,25'
              BranchSideFuncs:
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - setrlimit
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - time
                - xsleep
                - vlog
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/daemon-unix.c:397,17'
              BranchSideFuncs:
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - time
                - xsleep
                - vlog
        - Branch String:   'lib/daemon-unix.c:394,25'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:394,25'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - setrlimit
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - time
                - xsleep
                - vlog
            - BranchSide:      'lib/daemon-unix.c:396,21'
              BranchSideFuncs:
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - time
                - xsleep
                - vlog
        - Branch String:   'lib/daemon-unix.c:404,21'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:405,21'
              BranchSideFuncs:
                - time
                - xsleep
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - vlog
            - BranchSide:      'lib/daemon-unix.c:416,32'
              BranchSideFuncs:
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - time
                - xsleep
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
        - Branch String:   'lib/daemon-unix.c:405,21'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:405,21'
              BranchSideFuncs:
                - vlog
                - time
                - xsleep
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
            - BranchSide:      'lib/daemon-unix.c:407,21'
              BranchSideFuncs:
                - time
                - xsleep
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
        - Branch String:   'lib/daemon-unix.c:410,29'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:411,29'
              BranchSideFuncs:
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - time
                - xsleep
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
            - BranchSide:      'lib/daemon-unix.c:413,32'
              BranchSideFuncs:
                - xsleep
                - time
                - time
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
        - Branch String:   'lib/daemon-unix.c:418,17'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:418,17'
              BranchSideFuncs:
                - vlog
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - time
                - time
                - xsleep
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
            - BranchSide:      'lib/daemon-unix.c:419,32'
              BranchSideFuncs:
                - fork_and_wait_for_startup
                - ovs_cmdl_proctitle_set
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - time
                - vlog
                - time
                - xsleep
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
        - Branch String:   'lib/daemon-unix.c:421,33'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:421,37'
              BranchSideFuncs:
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - ovs_cmdl_proctitle_set
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - vlog
                - time
                - xsleep
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
            - BranchSide:      'lib/daemon-unix.c:426,13'
              BranchSideFuncs:
                - ovs_cmdl_proctitle_set
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - time
                - xsleep
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
        - Branch String:   'lib/daemon-unix.c:421,21'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:424,21'
              BranchSideFuncs:
                - ovs_cmdl_proctitle_set
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - time
                - xsleep
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
            - BranchSide:      'lib/daemon-unix.c:426,13'
              BranchSideFuncs:
                - ovs_cmdl_proctitle_set
                - process_status_msg
                - should_restart
                - free
                - exit
                - vlog
                - free
                - xasprintf
                - free
                - log_received_backtrace
                - close
                - time
                - time
                - fork_and_wait_for_startup
                - free
                - ovs_cmdl_proctitle_restore
                - set_subprogram_name
                - vlog
                - time
                - xsleep
                - vlog
                - setrlimit
                - __errno_location
                - ovs_strerror
                - vlog
                - vlog_get_log_file
                - vlog_close_log_file
                - waitpid
                - vlog_set_log_file
                - free
                - ovs_strerror
                - vlog_fatal
                - __errno_location
        - Branch String:   'lib/daemon-unix.c:427,17'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:427,17'
              BranchSideFuncs:
                - vlog
                - free
                - exit
            - BranchSide:      'lib/daemon-unix.c:429,22'
              BranchSideFuncs:
                - free
                - exit
      Callsites:
        - Src:             'lib/daemon-unix.c:352,5'
          Dst:             set_subprogram_name
        - Src:             'lib/daemon-unix.c:353,18'
          Dst:             xstrdup
        - Src:             'lib/daemon-unix.c:360,9'
          Dst:             ovs_cmdl_proctitle_set
        - Src:             'lib/daemon-unix.c:364,30'
          Dst:             vlog_get_log_file
        - Src:             'lib/daemon-unix.c:365,13'
          Dst:             vlog_close_log_file
        - Src:             'lib/daemon-unix.c:368,26'
          Dst:             waitpid
        - Src:             'lib/daemon-unix.c:369,40'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:371,13'
          Dst:             vlog_set_log_file
        - Src:             'lib/daemon-unix.c:374,17'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:374,17'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:379,23'
          Dst:             process_status_msg
        - Src:             'lib/daemon-unix.c:380,17'
          Dst:             should_restart
        - Src:             'lib/daemon-unix.c:382,30'
          Dst:             xasprintf
        - Src:             'lib/daemon-unix.c:393,25'
          Dst:             setrlimit
        - Src:             'lib/daemon-unix.c:394,25'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:394,25'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:394,25'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:399,17'
          Dst:             log_received_backtrace
        - Src:             'lib/daemon-unix.c:400,17'
          Dst:             close
        - Src:             'lib/daemon-unix.c:404,21'
          Dst:             time
        - Src:             'lib/daemon-unix.c:405,21'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:408,38'
          Dst:             time
        - Src:             'lib/daemon-unix.c:413,25'
          Dst:             xsleep
        - Src:             'lib/daemon-unix.c:416,32'
          Dst:             time
        - Src:             'lib/daemon-unix.c:418,17'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:419,32'
          Dst:             fork_and_wait_for_startup
        - Src:             'lib/daemon-unix.c:427,17'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:430,17'
          Dst:             exit
        - Src:             'lib/daemon-unix.c:437,5'
          Dst:             ovs_cmdl_proctitle_restore
        - Src:             'lib/daemon-unix.c:438,5'
          Dst:             set_subprogram_name
    - functionName:    waitpid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    setrlimit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    time
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fork_and_wait_for_startup
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - fdp
        - child_pid
      BBCount:         35
      ICount:          193
      EdgeCount:       42
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - abort
        - close
        - exit
        - fork_and_clean_up
        - ovs_strerror
        - process_status_msg
        - read_fully
        - vlog
        - vlog_fatal
        - waitpid
        - xpipe
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/daemon-unix.c:265,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:270,15'
              BranchSideFuncs:
                - close
                - read_fully
                - waitpid
                - abort
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - process_status_msg
                - free
                - vlog
                - exit
                - __errno_location
            - BranchSide:      'lib/daemon-unix.c:298,17'
              BranchSideFuncs:
                - close
        - Branch String:   'lib/daemon-unix.c:271,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:275,13'
              BranchSideFuncs:
                - waitpid
                - abort
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - process_status_msg
                - free
                - vlog
                - exit
                - __errno_location
            - BranchSide:      'lib/daemon-unix.c:297,16'
              BranchSideFuncs: []
        - Branch String:   'lib/daemon-unix.c:277,35'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:277,38'
              BranchSideFuncs:
                - __errno_location
                - abort
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - process_status_msg
                - free
                - vlog
                - exit
                - waitpid
            - BranchSide:      'lib/daemon-unix.c:277,13'
              BranchSideFuncs:
                - abort
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - process_status_msg
                - free
                - vlog
                - exit
                - waitpid
                - __errno_location
        - Branch String:   'lib/daemon-unix.c:277,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:276,34'
              BranchSideFuncs:
                - waitpid
                - abort
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - process_status_msg
                - free
                - vlog
                - exit
                - __errno_location
            - BranchSide:      'lib/daemon-unix.c:279,17'
              BranchSideFuncs:
                - abort
                - __errno_location
                - ovs_strerror
                - vlog_fatal
                - process_status_msg
                - free
                - vlog
                - exit
        - Branch String:   'lib/daemon-unix.c:279,17'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:280,21'
              BranchSideFuncs:
                - process_status_msg
                - free
                - vlog
                - exit
            - BranchSide:      'lib/daemon-unix.c:291,24'
              BranchSideFuncs:
                - abort
                - __errno_location
                - ovs_strerror
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:280,39'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:280,42'
              BranchSideFuncs:
                - process_status_msg
                - free
                - vlog
                - exit
            - BranchSide:      'lib/daemon-unix.c:285,59'
              BranchSideFuncs:
                - process_status_msg
                - free
                - vlog
        - Branch String:   'lib/daemon-unix.c:280,21'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:283,26'
              BranchSideFuncs:
                - exit
            - BranchSide:      'lib/daemon-unix.c:285,59'
              BranchSideFuncs:
                - process_status_msg
                - free
                - vlog
        - Branch String:   'lib/daemon-unix.c:286,21'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:286,21'
              BranchSideFuncs:
                - vlog
                - free
            - BranchSide:      'lib/daemon-unix.c:288,25'
              BranchSideFuncs:
                - free
        - Branch String:   'lib/daemon-unix.c:291,24'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:292,17'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:294,17'
              BranchSideFuncs:
                - abort
      Callsites:
        - Src:             'lib/daemon-unix.c:262,5'
          Dst:             xpipe
        - Src:             'lib/daemon-unix.c:264,11'
          Dst:             fork_and_clean_up
        - Src:             'lib/daemon-unix.c:270,9'
          Dst:             close
        - Src:             'lib/daemon-unix.c:271,13'
          Dst:             read_fully
        - Src:             'lib/daemon-unix.c:276,26'
          Dst:             waitpid
        - Src:             'lib/daemon-unix.c:277,38'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:283,21'
          Dst:             exit
        - Src:             'lib/daemon-unix.c:285,40'
          Dst:             process_status_msg
        - Src:             'lib/daemon-unix.c:286,21'
          Dst:             vlog
        - Src:             'lib/daemon-unix.c:292,17'
          Dst:             __errno_location
        - Src:             'lib/daemon-unix.c:292,17'
          Dst:             ovs_strerror
        - Src:             'lib/daemon-unix.c:292,17'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:294,17'
          Dst:             abort
        - Src:             'lib/daemon-unix.c:300,9'
          Dst:             close
    - functionName:    daemonize_start
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 499
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - bool
        - bool
      constantsTouched: []
      argNames:
        - access_datapath
        - access_hardware_ports
      BBCount:         27
      ICount:          132
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - assert_single_threaded_at
        - close_standard_fds
        - daemon_become_new_user__
        - exit
        - forbid_forking
        - fork_and_wait_for_startup
        - fork_notify_startup
        - make_pidfile
        - monitor_daemon
        - setsid
        - vlog_fatal
        - vlog_init
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/daemon-unix.c:452,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:453,34'
              BranchSideFuncs:
                - daemon_become_new_user__
                - forbid_forking
                - vlog_init
                - make_pidfile
                - fork_and_wait_for_startup
                - fork_notify_startup
                - monitor_daemon
                - close_standard_fds
                - vlog_fatal
                - fork_and_wait_for_startup
                - setsid
                - exit
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:457,9'
              BranchSideFuncs:
                - forbid_forking
                - vlog_init
                - make_pidfile
                - fork_and_wait_for_startup
                - fork_notify_startup
                - monitor_daemon
                - close_standard_fds
                - vlog_fatal
                - fork_and_wait_for_startup
                - setsid
                - exit
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:457,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:460,13'
              BranchSideFuncs:
                - fork_and_wait_for_startup
                - setsid
                - forbid_forking
                - vlog_init
                - make_pidfile
                - fork_and_wait_for_startup
                - fork_notify_startup
                - monitor_daemon
                - close_standard_fds
                - vlog_fatal
                - exit
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:472,9'
              BranchSideFuncs:
                - forbid_forking
                - vlog_init
                - make_pidfile
                - fork_and_wait_for_startup
                - fork_notify_startup
                - monitor_daemon
                - close_standard_fds
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:460,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:461,13'
              BranchSideFuncs:
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:463,13'
              BranchSideFuncs:
                - setsid
                - forbid_forking
                - vlog_init
                - make_pidfile
                - fork_and_wait_for_startup
                - fork_notify_startup
                - monitor_daemon
                - close_standard_fds
                - vlog_fatal
                - exit
        - Branch String:   'lib/daemon-unix.c:463,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:465,13'
              BranchSideFuncs:
                - exit
            - BranchSide:      'lib/daemon-unix.c:469,9'
              BranchSideFuncs:
                - setsid
                - forbid_forking
                - vlog_init
                - make_pidfile
                - fork_and_wait_for_startup
                - fork_notify_startup
                - monitor_daemon
                - close_standard_fds
                - vlog_fatal
        - Branch String:   'lib/daemon-unix.c:472,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:473,34'
              BranchSideFuncs:
                - fork_and_wait_for_startup
                - forbid_forking
                - vlog_init
                - make_pidfile
                - fork_notify_startup
                - monitor_daemon
                - close_standard_fds
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:490,5'
              BranchSideFuncs:
                - forbid_forking
                - vlog_init
                - make_pidfile
        - Branch String:   'lib/daemon-unix.c:476,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:477,13'
              BranchSideFuncs:
                - vlog_fatal
            - BranchSide:      'lib/daemon-unix.c:479,13'
              BranchSideFuncs:
                - forbid_forking
                - vlog_init
                - make_pidfile
                - fork_notify_startup
                - monitor_daemon
                - close_standard_fds
        - Branch String:   'lib/daemon-unix.c:479,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:481,33'
              BranchSideFuncs:
                - fork_notify_startup
                - monitor_daemon
                - forbid_forking
                - vlog_init
                - make_pidfile
                - close_standard_fds
            - BranchSide:      'lib/daemon-unix.c:488,5'
              BranchSideFuncs:
                - forbid_forking
                - vlog_init
                - make_pidfile
        - Branch String:   'lib/daemon-unix.c:482,17'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:483,17'
              BranchSideFuncs:
                - close_standard_fds
                - monitor_daemon
                - forbid_forking
                - vlog_init
                - make_pidfile
            - BranchSide:      'lib/daemon-unix.c:485,28'
              BranchSideFuncs:
                - monitor_daemon
                - forbid_forking
                - vlog_init
                - make_pidfile
        - Branch String:   'lib/daemon-unix.c:492,9'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:492,9'
              BranchSideFuncs:
                - make_pidfile
                - vlog_init
            - BranchSide:      'lib/daemon-unix.c:493,9'
              BranchSideFuncs:
                - make_pidfile
                - vlog_init
      Callsites:
        - Src:             'lib/daemon-unix.c:449,5'
          Dst:             assert_single_threaded_at
        - Src:             'lib/daemon-unix.c:453,9'
          Dst:             daemon_become_new_user__
        - Src:             'lib/daemon-unix.c:460,13'
          Dst:             fork_and_wait_for_startup
        - Src:             'lib/daemon-unix.c:461,13'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:465,13'
          Dst:             exit
        - Src:             'lib/daemon-unix.c:469,9'
          Dst:             setsid
        - Src:             'lib/daemon-unix.c:476,13'
          Dst:             fork_and_wait_for_startup
        - Src:             'lib/daemon-unix.c:477,13'
          Dst:             vlog_fatal
        - Src:             'lib/daemon-unix.c:481,13'
          Dst:             fork_notify_startup
        - Src:             'lib/daemon-unix.c:483,17'
          Dst:             close_standard_fds
        - Src:             'lib/daemon-unix.c:485,13'
          Dst:             monitor_daemon
        - Src:             'lib/daemon-unix.c:490,5'
          Dst:             forbid_forking
        - Src:             'lib/daemon-unix.c:493,9'
          Dst:             make_pidfile
        - Src:             'lib/daemon-unix.c:498,5'
          Dst:             vlog_init
    - functionName:    setsid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    daemon_set_monitor
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_detach
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ignore_existing_pidfile
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_no_chdir
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    make_pidfile_name
      functionSourceFile: '/src/openvswitch/lib/daemon-unix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - abs_file_name
        - ovs_rundir
        - xasprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/daemon-unix.c:104,13'
          Branch Sides:
            - BranchSide:      'lib/daemon-unix.c:105,38'
              BranchSideFuncs:
                - ovs_rundir
                - abs_file_name
            - BranchSide:      'lib/daemon-unix.c:106,29'
              BranchSideFuncs:
                - ovs_rundir
                - abs_file_name
      Callsites:
        - Src:             'lib/daemon-unix.c:105,38'
          Dst:             ovs_rundir
        - Src:             'lib/daemon-unix.c:105,15'
          Dst:             xasprintf
        - Src:             'lib/daemon-unix.c:106,29'
          Dst:             ovs_rundir
        - Src:             'lib/daemon-unix.c:106,15'
          Dst:             abs_file_name
    - functionName:    init_this_module_signals
      functionSourceFile: '/src/openvswitch/lib/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 30
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/signals.c:30,1'
          Branch Sides:
            - BranchSide:      'lib/signals.c:30,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/signals.c:30,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/signals.c:30,1'
          Dst:             vlog_insert_module
    - functionName:    xsigaction
      functionSourceFile: '/src/openvswitch/lib/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - signum
        - new
        - old
      BBCount:         5
      ICount:          43
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - __errno_location
        - ovs_strerror
        - sigaction
        - signal_name
        - vlog_fatal
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/signals.c:73,9'
          Branch Sides:
            - BranchSide:      'lib/signals.c:76,9'
              BranchSideFuncs:
                - signal_name
                - __errno_location
                - ovs_strerror
                - vlog_fatal
            - BranchSide:      'lib/signals.c:80,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/signals.c:73,9'
          Dst:             sigaction
        - Src:             'lib/signals.c:76,9'
          Dst:             signal_name
        - Src:             'lib/signals.c:76,9'
          Dst:             __errno_location
        - Src:             'lib/signals.c:76,9'
          Dst:             ovs_strerror
        - Src:             'lib/signals.c:76,9'
          Dst:             vlog_fatal
    - functionName:    sigaction
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    signal_name
      functionSourceFile: '/src/openvswitch/lib/signals.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - signum
        - namebuf
        - bufsize
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - snprintf
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/signals.c:53,21'
          Branch Sides:
            - BranchSide:      'lib/signals.c:53,24'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'lib/signals.c:66,14'
              BranchSideFuncs:
                - snprintf
        - Branch String:   'lib/signals.c:53,9'
          Branch Sides:
            - BranchSide:      'lib/signals.c:54,40'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'lib/signals.c:66,14'
              BranchSideFuncs:
                - snprintf
        - Branch String:   'lib/signals.c:55,13'
          Branch Sides:
            - BranchSide:      'lib/signals.c:56,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/signals.c:58,5'
              BranchSideFuncs:
                - snprintf
      Callsites:
        - Src:             'lib/signals.c:66,5'
          Dst:             snprintf
    - functionName:    crc32c
      functionSourceFile: '/src/openvswitch/lib/crc32c.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - data
        - size
      BBCount:         4
      ICount:          43
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/crc32c.c:145,5'
          Branch Sides:
            - BranchSide:      'lib/crc32c.c:146,27'
              BranchSideFuncs: []
            - BranchSide:      'lib/crc32c.c:158,34'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    unaligned_be16
      functionSourceFile: '/src/openvswitch/lib/unaligned.h'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_16aligned_be32
      functionSourceFile: '/src/openvswitch/lib/unaligned.h'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - x
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    recalc_csum128
      functionSourceFile: '/src/openvswitch/lib/csum.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      short
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - old_csum
        - old_u32
        - new_in6
      BBCount:         7
      ICount:          63
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - get_16aligned_be32
        - recalc_csum32
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/csum.c:133,5'
          Branch Sides:
            - BranchSide:      'lib/csum.c:134,34'
              BranchSideFuncs:
                - get_16aligned_be32.4834
                - recalc_csum32
            - BranchSide:      'lib/csum.c:137,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/csum.c:135,34'
          Dst:             get_16aligned_be32
        - Src:             'lib/csum.c:134,20'
          Dst:             recalc_csum32
    - functionName:    recalc_csum32
      functionSourceFile: '/src/openvswitch/lib/csum.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      short
      argCount:        3
      argTypes:
        - short
        - int
        - int
      constantsTouched: []
      argNames:
        - old_csum
        - old_u32
        - new_u32
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - recalc_csum16
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/csum.c:97,26'
          Dst:             recalc_csum16
        - Src:             'lib/csum.c:97,12'
          Dst:             recalc_csum16
    - functionName:    recalc_csum16
      functionSourceFile: '/src/openvswitch/lib/csum.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      short
      argCount:        3
      argTypes:
        - short
        - short
        - short
      constantsTouched: []
      argNames:
        - old_csum
        - old_u16
        - new_u16
      BBCount:         3
      ICount:          51
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - csum_finish
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/csum.c:88,12'
          Dst:             csum_finish
    - functionName:    csum_finish
      functionSourceFile: '/src/openvswitch/lib/csum.c'
      linkageType:     InternalLinkage
      functionLinenumber: 67
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - partial
      BBCount:         4
      ICount:          28
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:
        - Branch String:   'lib/csum.c:68,5'
          Branch Sides:
            - BranchSide:      'lib/csum.c:69,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/csum.c:71,13'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    recalc_csum48
      functionSourceFile: '/src/openvswitch/lib/csum.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 114
      functionDepth:   0
      returnType:      short
      argCount:        3
      argTypes:
        - short
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - old_csum
        - old_mac
        - new_mac
      BBCount:         7
      ICount:          65
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - recalc_csum16
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/csum.c:110,5'
          Branch Sides:
            - BranchSide:      'lib/csum.c:111,34'
              BranchSideFuncs:
                - recalc_csum16
            - BranchSide:      'lib/csum.c:114,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/csum.c:111,20'
          Dst:             recalc_csum16
    - functionName:    get_unaligned_be16
      functionSourceFile: '/src/openvswitch/lib/unaligned.h'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unaligned_be16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/unaligned.h:89,1'
          Dst:             unaligned_be16
    - functionName:    csum_add16
      functionSourceFile: '/src/openvswitch/lib/csum.h'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - short
      constantsTouched: []
      argNames:
        - partial
        - new
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    csum_continue
      functionSourceFile: '/src/openvswitch/lib/csum.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - partial
        - data_
        - n
      BBCount:         10
      ICount:          64
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - csum_add16
        - get_unaligned_be16
      functionUses:    13
      BranchProfiles:
        - Branch String:   'lib/csum.c:45,5'
          Branch Sides:
            - BranchSide:      'lib/csum.c:46,30'
              BranchSideFuncs:
                - get_unaligned_be16
                - csum_add16.4845
            - BranchSide:      'lib/csum.c:48,9'
              BranchSideFuncs: []
        - Branch String:   'lib/csum.c:48,9'
          Branch Sides:
            - BranchSide:      'lib/csum.c:48,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/csum.c:52,33'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/csum.c:46,39'
          Dst:             get_unaligned_be16
        - Src:             'lib/csum.c:46,19'
          Dst:             csum_add16
    - functionName:    csum
      functionSourceFile: '/src/openvswitch/lib/csum.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - data
        - n
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - csum_continue
        - csum_finish
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/csum.c:33,24'
          Dst:             csum_continue
        - Src:             'lib/csum.c:33,12'
          Dst:             csum_finish
    - functionName:    init_this_module_daemon
      functionSourceFile: '/src/openvswitch/lib/daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 26
      functionLinenumberEnd: 26
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/daemon.c:26,1'
          Branch Sides:
            - BranchSide:      'lib/daemon.c:26,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/daemon.c:26,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/daemon.c:26,1'
          Dst:             vlog_insert_module
    - functionName:    get_null_fd
      functionSourceFile: '/src/openvswitch/lib/daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         14
      ICount:          70
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - open
        - ovs_strerror
        - vlog
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/daemon.c:108,11'
          Branch Sides:
            - BranchSide:      'lib/daemon.c:108,11'
              BranchSideFuncs:
                - open
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/daemon.c:108,11'
              BranchSideFuncs:
                - open
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/daemon.c:113,9'
          Branch Sides:
            - BranchSide:      'lib/daemon.c:113,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/daemon.c:114,24'
              BranchSideFuncs:
                - open
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/daemon.c:115,13'
          Branch Sides:
            - BranchSide:      'lib/daemon.c:116,25'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/daemon.c:120,5'
              BranchSideFuncs: []
        - Branch String:   'lib/daemon.c:117,13'
          Branch Sides:
            - BranchSide:      'lib/daemon.c:117,13'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/daemon.c:118,24'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/daemon.c:114,19'
          Dst:             open
        - Src:             'lib/daemon.c:116,25'
          Dst:             __errno_location
        - Src:             'lib/daemon.c:117,13'
          Dst:             ovs_strerror
        - Src:             'lib/daemon.c:117,13'
          Dst:             vlog
    - functionName:    close_standard_fds
      functionSourceFile: '/src/openvswitch/lib/daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          61
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - dup2
        - get_null_fd
        - vlog_set_levels
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/daemon.c:131,19'
          Branch Sides:
            - BranchSide:      'lib/daemon.c:131,9'
              BranchSideFuncs:
                - get_null_fd
                - vlog_set_levels
                - dup2
            - BranchSide:      'lib/daemon.c:131,19'
              BranchSideFuncs:
                - get_null_fd
                - vlog_set_levels
                - dup2
        - Branch String:   'lib/daemon.c:132,9'
          Branch Sides:
            - BranchSide:      'lib/daemon.c:132,9'
              BranchSideFuncs:
                - vlog_set_levels
                - dup2
            - BranchSide:      'lib/daemon.c:135,17'
              BranchSideFuncs:
                - vlog_set_levels
                - dup2
        - Branch String:   'lib/daemon.c:135,9'
          Branch Sides:
            - BranchSide:      'lib/daemon.c:136,27'
              BranchSideFuncs:
                - dup2
                - vlog_set_levels
            - BranchSide:      'lib/daemon.c:140,5'
              BranchSideFuncs:
                - vlog_set_levels
        - Branch String:   'lib/daemon.c:136,17'
          Branch Sides:
            - BranchSide:      'lib/daemon.c:137,22'
              BranchSideFuncs:
                - vlog_set_levels
                - dup2
            - BranchSide:      'lib/daemon.c:139,9'
              BranchSideFuncs:
                - vlog_set_levels
                - dup2
      Callsites:
        - Src:             'lib/daemon.c:131,19'
          Dst:             get_null_fd
        - Src:             'lib/daemon.c:137,17'
          Dst:             dup2
        - Src:             'lib/daemon.c:143,5'
          Dst:             vlog_set_levels
    - functionName:    dup2
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    daemon_save_fd
      functionSourceFile: '/src/openvswitch/lib/daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - fd
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/daemon.c:94,5'
          Branch Sides:
            - BranchSide:      'lib/daemon.c:94,5'
              BranchSideFuncs: []
            - BranchSide:      'lib/daemon.c:94,5'
              BranchSideFuncs: []
        - Branch String:   'lib/daemon.c:94,5'
          Branch Sides:
            - BranchSide:      'lib/daemon.c:94,5'
              BranchSideFuncs: []
            - BranchSide:      'lib/daemon.c:94,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    daemon_should_self_confine
      functionSourceFile: '/src/openvswitch/lib/daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    daemon_disable_self_confinement
      functionSourceFile: '/src/openvswitch/lib/daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_pidfile
      functionSourceFile: '/src/openvswitch/lib/daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - assert_single_threaded_at
        - make_pidfile_name
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/daemon.c:64,5'
          Dst:             assert_single_threaded_at
        - Src:             'lib/daemon.c:66,15'
          Dst:             make_pidfile_name
    - functionName:    daemonize
      functionSourceFile: '/src/openvswitch/lib/daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - daemonize_complete
        - daemonize_start
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/daemon.c:51,5'
          Branch Sides:
            - BranchSide:      'lib/daemon.c:51,5'
              BranchSideFuncs:
                - daemonize_start
                - daemonize_complete
            - BranchSide:      'lib/daemon.c:51,5'
              BranchSideFuncs:
                - daemonize_start
                - daemonize_complete
      Callsites:
        - Src:             'lib/daemon.c:51,5'
          Dst:             daemonize_start
        - Src:             'lib/daemon.c:52,5'
          Dst:             daemonize_complete
    - functionName:    get_detach
      functionSourceFile: '/src/openvswitch/lib/daemon.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      bool
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_ip_checksum_set_good
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1097
      functionLinenumberEnd: 1100
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_ip_checksum_set_good
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1153
      functionLinenumberEnd: 1156
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          17
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_l3_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 490
      functionLinenumberEnd: 493
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_l2_pad_size
        - dp_packet_l3
        - dp_packet_tail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:491,12'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:491,12'
              BranchSideFuncs:
                - dp_packet_tail.5059
                - dp_packet_l3.5060
                - dp_packet_l2_pad_size.5061
            - BranchSide:      'lib/dp-packet.h:492,40'
              BranchSideFuncs:
                - dp_packet_tail.5059
                - dp_packet_l3.5060
                - dp_packet_l2_pad_size.5061
      Callsites:
        - Src:             'lib/dp-packet.h:492,25'
          Dst:             dp_packet_tail
        - Src:             'lib/dp-packet.h:492,59'
          Dst:             dp_packet_l3
        - Src:             'lib/dp-packet.h:493,11'
          Dst:             dp_packet_l2_pad_size
    - functionName:    dp_packet_tail
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_data
        - dp_packet_size
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:326,21'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.h:326,41'
          Dst:             dp_packet_size
    - functionName:    dp_packet_l3
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 462
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:461,12'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:461,12'
              BranchSideFuncs:
                - dp_packet_data.5062
            - BranchSide:      'lib/dp-packet.h:462,38'
              BranchSideFuncs:
                - dp_packet_data.5062
      Callsites:
        - Src:             'lib/dp-packet.h:462,23'
          Dst:             dp_packet_data
    - functionName:    dp_packet_l2_pad_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 832
      functionLinenumberEnd: 834
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __packet_data
        - dp_packet_base
      functionUses:    18
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:833,12'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:833,12'
              BranchSideFuncs:
                - dp_packet_base.5064
                - __packet_data.5063
            - BranchSide:      'lib/dp-packet.h:834,38'
              BranchSideFuncs:
                - dp_packet_base.5064
                - __packet_data.5063
      Callsites:
        - Src:             'lib/dp-packet.h:833,12'
          Dst:             __packet_data
        - Src:             'lib/dp-packet.h:834,23'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.h:834,43'
          Dst:             __packet_data
    - functionName:    __packet_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 761
      functionLinenumberEnd: 762
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_base
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 737
      functionLinenumberEnd: 738
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 749
      functionLinenumberEnd: 750
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    14
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_l3_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 518
      functionLinenumberEnd: 522
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_inner_l3
        - dp_packet_l2_pad_size
        - dp_packet_tail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:519,12'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:519,12'
              BranchSideFuncs:
                - dp_packet_tail.5059
                - dp_packet_inner_l3.5066
                - dp_packet_l2_pad_size.5061
            - BranchSide:      'lib/dp-packet.h:520,44'
              BranchSideFuncs:
                - dp_packet_tail.5059
                - dp_packet_inner_l3.5066
                - dp_packet_l2_pad_size.5061
      Callsites:
        - Src:             'lib/dp-packet.h:520,29'
          Dst:             dp_packet_tail
        - Src:             'lib/dp-packet.h:521,29'
          Dst:             dp_packet_inner_l3
        - Src:             'lib/dp-packet.h:522,14'
          Dst:             dp_packet_l2_pad_size
    - functionName:    dp_packet_inner_l3
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 510
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_data
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:511,12'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:511,12'
              BranchSideFuncs:
                - dp_packet_data.5062
            - BranchSide:      'lib/dp-packet.h:512,38'
              BranchSideFuncs:
                - dp_packet_data.5062
      Callsites:
        - Src:             'lib/dp-packet.h:512,23'
          Dst:             dp_packet_data
    - functionName:    dp_packet_get_allocated
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 773
      functionLinenumberEnd: 774
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_end
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 333
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_base
        - dp_packet_get_allocated
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:334,21'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.h:334,41'
          Dst:             dp_packet_get_allocated
    - functionName:    __packet_set_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 767
      functionLinenumberEnd: 769
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - b
        - v
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_flow_mark_ptr
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 638
      functionLinenumberEnd: 639
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_rss_ptr
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 632
      functionLinenumberEnd: 633
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_reset_outer_offsets
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_init_specific
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 731
      functionLinenumberEnd: 733
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_reset_offload
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1024
      functionLinenumberEnd: 1027
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_reset_cutlen
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 798
      functionLinenumberEnd: 800
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pkt_metadata_init
      functionSourceFile: '/src/openvswitch/lib/packets.h'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - md
        - port
      BBCount:         1
      ICount:          36
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_reset_offsets
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 423
      functionLinenumberEnd: 427
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_reset_outer_offsets
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:424,5'
          Dst:             dp_packet_reset_outer_offsets
    - functionName:    dp_packet_init__
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - char
      constantsTouched: []
      argNames:
        - b
        - allocated
        - source
      BBCount:         3
      ICount:          45
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_init_specific
        - dp_packet_reset_cutlen
        - dp_packet_reset_offload
        - dp_packet_reset_offsets
        - dp_packet_set_allocated
        - dp_packet_set_tso_segsz
        - htonl
        - pkt_metadata_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:31,5'
          Dst:             dp_packet_set_allocated
        - Src:             'lib/dp-packet.c:33,5'
          Dst:             dp_packet_reset_offsets
        - Src:             'lib/dp-packet.c:34,5'
          Dst:             pkt_metadata_init
        - Src:             'lib/dp-packet.c:35,5'
          Dst:             dp_packet_reset_cutlen
        - Src:             'lib/dp-packet.c:36,5'
          Dst:             dp_packet_reset_offload
        - Src:             'lib/dp-packet.c:37,5'
          Dst:             dp_packet_set_tso_segsz
        - Src:             'lib/dp-packet.c:39,5'
          Dst:             dp_packet_init_specific
        - Src:             'lib/dp-packet.c:41,22'
          Dst:             htonl
    - functionName:    dp_packet_set_allocated
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 779
      functionLinenumberEnd: 781
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - b
        - s
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_set_tso_segsz
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 791
      functionLinenumberEnd: 793
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - p
        - s
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_l4_proto_sctp
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1329
      functionLinenumberEnd: 1331
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_l4_proto_udp
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1322
      functionLinenumberEnd: 1324
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_l4_proto_tcp
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1315
      functionLinenumberEnd: 1317
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_tunnel_vxlan
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1063
      functionLinenumberEnd: 1065
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_tunnel_geneve
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1049
      functionLinenumberEnd: 1051
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_l4_proto_sctp
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1236
      functionLinenumberEnd: 1238
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_l4_proto_udp
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1222
      functionLinenumberEnd: 1224
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_l4_proto_tcp
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1208
      functionLinenumberEnd: 1210
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_ip_set_header_csum
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1177
      functionLinenumberEnd: 1204
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - bool
      constantsTouched: []
      argNames:
        - p
        - inner
      BBCount:         15
      ICount:          112
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - csum
        - dp_packet_inner_ip_checksum_set_good
        - dp_packet_inner_l3
        - dp_packet_inner_l3_size
        - dp_packet_ip_checksum_set_good
        - dp_packet_l3
        - dp_packet_l3_size
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:1182,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:1183,33'
              BranchSideFuncs:
                - dp_packet_inner_l3.5066
                - dp_packet_inner_l3_size
                - dp_packet_ip_checksum_set_good
                - dp_packet_inner_ip_checksum_set_good
                - csum
            - BranchSide:      'lib/dp-packet.h:1186,27'
              BranchSideFuncs:
                - dp_packet_l3.5060
                - dp_packet_l3_size
                - dp_packet_ip_checksum_set_good
                - dp_packet_inner_ip_checksum_set_good
                - csum
        - Branch String:   'lib/dp-packet.h:1194,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:1194,9'
              BranchSideFuncs:
                - dp_packet_ip_checksum_set_good
                - dp_packet_inner_ip_checksum_set_good
                - csum
            - BranchSide:      'lib/dp-packet.h:1194,9'
              BranchSideFuncs:
                - dp_packet_ip_checksum_set_good
                - dp_packet_inner_ip_checksum_set_good
                - csum
        - Branch String:   'lib/dp-packet.h:1194,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:1195,9'
              BranchSideFuncs:
                - csum
                - dp_packet_ip_checksum_set_good
                - dp_packet_inner_ip_checksum_set_good
            - BranchSide:      'lib/dp-packet.h:1199,9'
              BranchSideFuncs:
                - dp_packet_ip_checksum_set_good
                - dp_packet_inner_ip_checksum_set_good
        - Branch String:   'lib/dp-packet.h:1199,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:1200,46'
              BranchSideFuncs:
                - dp_packet_inner_ip_checksum_set_good
            - BranchSide:      'lib/dp-packet.h:1202,40'
              BranchSideFuncs:
                - dp_packet_ip_checksum_set_good
      Callsites:
        - Src:             'lib/dp-packet.h:1183,14'
          Dst:             dp_packet_inner_l3
        - Src:             'lib/dp-packet.h:1184,19'
          Dst:             dp_packet_inner_l3_size
        - Src:             'lib/dp-packet.h:1186,14'
          Dst:             dp_packet_l3
        - Src:             'lib/dp-packet.h:1187,19'
          Dst:             dp_packet_l3_size
        - Src:             'lib/dp-packet.h:1196,23'
          Dst:             csum
        - Src:             'lib/dp-packet.h:1200,9'
          Dst:             dp_packet_inner_ip_checksum_set_good
        - Src:             'lib/dp-packet.h:1202,9'
          Dst:             dp_packet_ip_checksum_set_good
    - functionName:    dp_packet_tunnel
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1090
      functionLinenumberEnd: 1091
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_l4_checksum_partial
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1355
      functionLinenumberEnd: 1357
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_inner_ip_checksum_partial
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1162
      functionLinenumberEnd: 1164
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_l4_checksum_partial
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1282
      functionLinenumberEnd: 1284
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_ip_checksum_partial
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1120
      functionLinenumberEnd: 1122
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_ol_send_prepare
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 555
      functionLinenumberEnd: 639
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - p
        - flags
      BBCount:         82
      ICount:          316
      EdgeCount:       111
      CyclomaticComplexity: 31
      functionsReached:
        - dp_packet_inner_ip_checksum_partial
        - dp_packet_inner_l4_checksum_partial
        - dp_packet_inner_l4_proto_sctp
        - dp_packet_inner_l4_proto_tcp
        - dp_packet_inner_l4_proto_udp
        - dp_packet_ip_checksum_partial
        - dp_packet_ip_set_header_csum
        - dp_packet_l4_checksum_partial
        - dp_packet_l4_proto_sctp
        - dp_packet_l4_proto_tcp
        - dp_packet_l4_proto_udp
        - dp_packet_tunnel
        - dp_packet_tunnel_geneve
        - dp_packet_tunnel_vxlan
        - packet_sctp_complete_csum
        - packet_tcp_complete_csum
        - packet_udp_complete_csum
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/dp-packet.c:557,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:557,43'
              BranchSideFuncs:
                - dp_packet_tunnel
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_tcp
                - dp_packet_l4_proto_udp
                - dp_packet_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_tunnel_geneve
                - dp_packet_tunnel_vxlan
                - dp_packet_inner_ip_checksum_partial
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_l4_checksum_partial
            - BranchSide:      'lib/dp-packet.c:564,27'
              BranchSideFuncs:
                - dp_packet_tunnel
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_tcp
                - dp_packet_l4_proto_udp
                - dp_packet_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_tunnel_geneve
                - dp_packet_tunnel_vxlan
                - dp_packet_inner_ip_checksum_partial
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_l4_checksum_partial
        - Branch String:   'lib/dp-packet.c:558,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:558,49'
              BranchSideFuncs:
                - dp_packet_tunnel
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_tcp
                - dp_packet_l4_proto_udp
                - dp_packet_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_tunnel_geneve
                - dp_packet_tunnel_vxlan
                - dp_packet_inner_ip_checksum_partial
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_l4_checksum_partial
            - BranchSide:      'lib/dp-packet.c:564,27'
              BranchSideFuncs:
                - dp_packet_tunnel
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_tcp
                - dp_packet_l4_proto_udp
                - dp_packet_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_tunnel_geneve
                - dp_packet_tunnel_vxlan
                - dp_packet_inner_ip_checksum_partial
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_l4_checksum_partial
        - Branch String:   'lib/dp-packet.c:559,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:559,49'
              BranchSideFuncs:
                - dp_packet_tunnel
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_tcp
                - dp_packet_l4_proto_udp
                - dp_packet_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_tunnel_geneve
                - dp_packet_tunnel_vxlan
                - dp_packet_inner_ip_checksum_partial
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_l4_checksum_partial
            - BranchSide:      'lib/dp-packet.c:564,27'
              BranchSideFuncs:
                - dp_packet_tunnel
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_tcp
                - dp_packet_l4_proto_udp
                - dp_packet_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_tunnel_geneve
                - dp_packet_tunnel_vxlan
                - dp_packet_inner_ip_checksum_partial
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_l4_checksum_partial
        - Branch String:   'lib/dp-packet.c:556,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:561,9'
              BranchSideFuncs:
                - dp_packet_tunnel
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_tcp
                - dp_packet_l4_proto_udp
                - dp_packet_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_tunnel_geneve
                - dp_packet_tunnel_vxlan
                - dp_packet_inner_ip_checksum_partial
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_l4_checksum_partial
            - BranchSide:      'lib/dp-packet.c:564,27'
              BranchSideFuncs:
                - dp_packet_tunnel
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_tcp
                - dp_packet_l4_proto_udp
                - dp_packet_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_tunnel_geneve
                - dp_packet_tunnel_vxlan
                - dp_packet_inner_ip_checksum_partial
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_l4_checksum_partial
        - Branch String:   'lib/dp-packet.c:564,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:565,43'
              BranchSideFuncs:
                - dp_packet_tunnel_geneve
                - dp_packet_tunnel_vxlan
                - dp_packet_inner_ip_checksum_partial
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_l4_checksum_partial
            - BranchSide:      'lib/dp-packet.c:590,33'
              BranchSideFuncs:
                - dp_packet_tunnel_geneve
                - dp_packet_tunnel_vxlan
                - dp_packet_inner_ip_checksum_partial
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_l4_checksum_partial
        - Branch String:   'lib/dp-packet.c:566,13'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:566,18'
              BranchSideFuncs:
                - dp_packet_ip_set_header_csum
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_tcp
                - dp_packet_l4_proto_udp
                - dp_packet_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
            - BranchSide:      'lib/dp-packet.c:570,43'
              BranchSideFuncs:
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_tcp
                - dp_packet_l4_proto_udp
                - dp_packet_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
        - Branch String:   'lib/dp-packet.c:565,13'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:567,42'
              BranchSideFuncs:
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_tcp
                - dp_packet_l4_proto_udp
                - dp_packet_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
            - BranchSide:      'lib/dp-packet.c:570,43'
              BranchSideFuncs:
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_tcp
                - dp_packet_l4_proto_udp
                - dp_packet_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
        - Branch String:   'lib/dp-packet.c:570,13'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:571,40'
              BranchSideFuncs:
                - dp_packet_l4_proto_tcp
                - dp_packet_l4_proto_udp
                - dp_packet_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
            - BranchSide:      'lib/dp-packet.c:587,9'
              BranchSideFuncs: []
        - Branch String:   'lib/dp-packet.c:571,17'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:572,23'
              BranchSideFuncs:
                - packet_tcp_complete_csum
            - BranchSide:      'lib/dp-packet.c:575,47'
              BranchSideFuncs:
                - dp_packet_l4_proto_udp
                - dp_packet_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
        - Branch String:   'lib/dp-packet.c:572,21'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:573,46'
              BranchSideFuncs: []
            - BranchSide:      'lib/dp-packet.c:575,13'
              BranchSideFuncs: []
        - Branch String:   'lib/dp-packet.c:575,24'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:576,23'
              BranchSideFuncs:
                - packet_udp_complete_csum
            - BranchSide:      'lib/dp-packet.c:580,17'
              BranchSideFuncs:
                - dp_packet_l4_proto_sctp
                - packet_sctp_complete_csum
        - Branch String:   'lib/dp-packet.c:576,21'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:577,46'
              BranchSideFuncs: []
            - BranchSide:      'lib/dp-packet.c:579,13'
              BranchSideFuncs: []
        - Branch String:   'lib/dp-packet.c:591,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:591,35'
              BranchSideFuncs:
                - dp_packet_l4_checksum_partial
                - dp_packet_inner_ip_checksum_partial
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
            - BranchSide:      'lib/dp-packet.c:597,15'
              BranchSideFuncs:
                - dp_packet_l4_checksum_partial
                - dp_packet_inner_ip_checksum_partial
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
        - Branch String:   'lib/dp-packet.c:590,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:597,15'
              BranchSideFuncs:
                - dp_packet_l4_checksum_partial
                - dp_packet_inner_ip_checksum_partial
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
            - BranchSide:      'lib/dp-packet.c:606,45'
              BranchSideFuncs:
                - dp_packet_inner_ip_checksum_partial
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
        - Branch String:   'lib/dp-packet.c:598,13'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:598,46'
              BranchSideFuncs:
                - dp_packet_inner_ip_checksum_partial
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
            - BranchSide:      'lib/dp-packet.c:604,5'
              BranchSideFuncs:
                - dp_packet_inner_ip_checksum_partial
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
        - Branch String:   'lib/dp-packet.c:597,13'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:599,19'
              BranchSideFuncs:
                - dp_packet_inner_ip_checksum_partial
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
            - BranchSide:      'lib/dp-packet.c:604,5'
              BranchSideFuncs:
                - dp_packet_inner_ip_checksum_partial
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
                - dp_packet_ip_set_header_csum
        - Branch String:   'lib/dp-packet.c:607,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:607,14'
              BranchSideFuncs:
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
            - BranchSide:      'lib/dp-packet.c:611,45'
              BranchSideFuncs:
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
        - Branch String:   'lib/dp-packet.c:606,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:608,38'
              BranchSideFuncs:
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
            - BranchSide:      'lib/dp-packet.c:611,45'
              BranchSideFuncs:
                - dp_packet_inner_l4_checksum_partial
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
        - Branch String:   'lib/dp-packet.c:611,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:612,42'
              BranchSideFuncs:
                - dp_packet_inner_l4_proto_tcp
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - packet_udp_complete_csum
                - packet_tcp_complete_csum
            - BranchSide:      'lib/dp-packet.c:628,39'
              BranchSideFuncs:
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
        - Branch String:   'lib/dp-packet.c:612,13'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:613,19'
              BranchSideFuncs:
                - packet_tcp_complete_csum
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
            - BranchSide:      'lib/dp-packet.c:616,49'
              BranchSideFuncs:
                - dp_packet_inner_l4_proto_udp
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
                - packet_udp_complete_csum
        - Branch String:   'lib/dp-packet.c:613,17'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:614,42'
              BranchSideFuncs:
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
            - BranchSide:      'lib/dp-packet.c:616,9'
              BranchSideFuncs:
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
        - Branch String:   'lib/dp-packet.c:616,20'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:617,19'
              BranchSideFuncs:
                - packet_udp_complete_csum
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
            - BranchSide:      'lib/dp-packet.c:621,13'
              BranchSideFuncs:
                - dp_packet_inner_l4_proto_sctp
                - packet_sctp_complete_csum
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
        - Branch String:   'lib/dp-packet.c:617,17'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:618,42'
              BranchSideFuncs:
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
            - BranchSide:      'lib/dp-packet.c:620,9'
              BranchSideFuncs:
                - dp_packet_ip_checksum_partial
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
                - dp_packet_ip_set_header_csum
        - Branch String:   'lib/dp-packet.c:629,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:629,14'
              BranchSideFuncs:
                - dp_packet_ip_set_header_csum
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
            - BranchSide:      'lib/dp-packet.c:633,39'
              BranchSideFuncs:
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
        - Branch String:   'lib/dp-packet.c:628,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:630,38'
              BranchSideFuncs:
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
            - BranchSide:      'lib/dp-packet.c:633,39'
              BranchSideFuncs:
                - dp_packet_l4_checksum_partial
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
        - Branch String:   'lib/dp-packet.c:633,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:633,9'
              BranchSideFuncs:
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
            - BranchSide:      'lib/dp-packet.c:634,9'
              BranchSideFuncs:
                - dp_packet_l4_proto_udp
                - packet_udp_complete_csum
        - Branch String:   'lib/dp-packet.c:635,13'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:636,38'
              BranchSideFuncs: []
            - BranchSide:      'lib/dp-packet.c:638,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/dp-packet.c:556,10'
          Dst:             dp_packet_ip_checksum_partial
        - Src:             'lib/dp-packet.c:557,13'
          Dst:             dp_packet_l4_checksum_partial
        - Src:             'lib/dp-packet.c:558,13'
          Dst:             dp_packet_inner_ip_checksum_partial
        - Src:             'lib/dp-packet.c:559,13'
          Dst:             dp_packet_inner_l4_checksum_partial
        - Src:             'lib/dp-packet.c:564,10'
          Dst:             dp_packet_tunnel
        - Src:             'lib/dp-packet.c:565,13'
          Dst:             dp_packet_ip_checksum_partial
        - Src:             'lib/dp-packet.c:567,13'
          Dst:             dp_packet_ip_set_header_csum
        - Src:             'lib/dp-packet.c:570,13'
          Dst:             dp_packet_l4_checksum_partial
        - Src:             'lib/dp-packet.c:571,17'
          Dst:             dp_packet_l4_proto_tcp
        - Src:             'lib/dp-packet.c:573,21'
          Dst:             packet_tcp_complete_csum
        - Src:             'lib/dp-packet.c:575,24'
          Dst:             dp_packet_l4_proto_udp
        - Src:             'lib/dp-packet.c:577,21'
          Dst:             packet_udp_complete_csum
        - Src:             'lib/dp-packet.c:580,17'
          Dst:             dp_packet_l4_proto_sctp
        - Src:             'lib/dp-packet.c:582,21'
          Dst:             packet_sctp_complete_csum
        - Src:             'lib/dp-packet.c:590,9'
          Dst:             dp_packet_tunnel_geneve
        - Src:             'lib/dp-packet.c:591,12'
          Dst:             dp_packet_tunnel_vxlan
        - Src:             'lib/dp-packet.c:598,16'
          Dst:             dp_packet_l4_checksum_partial
        - Src:             'lib/dp-packet.c:606,9'
          Dst:             dp_packet_inner_ip_checksum_partial
        - Src:             'lib/dp-packet.c:608,9'
          Dst:             dp_packet_ip_set_header_csum
        - Src:             'lib/dp-packet.c:611,9'
          Dst:             dp_packet_inner_l4_checksum_partial
        - Src:             'lib/dp-packet.c:612,13'
          Dst:             dp_packet_inner_l4_proto_tcp
        - Src:             'lib/dp-packet.c:614,17'
          Dst:             packet_tcp_complete_csum
        - Src:             'lib/dp-packet.c:616,20'
          Dst:             dp_packet_inner_l4_proto_udp
        - Src:             'lib/dp-packet.c:618,17'
          Dst:             packet_udp_complete_csum
        - Src:             'lib/dp-packet.c:621,13'
          Dst:             dp_packet_inner_l4_proto_sctp
        - Src:             'lib/dp-packet.c:623,17'
          Dst:             packet_sctp_complete_csum
        - Src:             'lib/dp-packet.c:628,9'
          Dst:             dp_packet_ip_checksum_partial
        - Src:             'lib/dp-packet.c:630,9'
          Dst:             dp_packet_ip_set_header_csum
        - Src:             'lib/dp-packet.c:633,9'
          Dst:             dp_packet_l4_checksum_partial
        - Src:             'lib/dp-packet.c:634,9'
          Dst:             dp_packet_l4_proto_udp
        - Src:             'lib/dp-packet.c:636,13'
          Dst:             packet_udp_complete_csum
    - functionName:    dp_packet_compare_offsets
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 524
      functionLinenumberEnd: 549
      functionDepth:   0
      returnType:      bool
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - b1
        - b2
        - err_str
      BBCount:         20
      ICount:          184
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - ds_put_format
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/dp-packet.c:525,46'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:526,10'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ds_put_format
            - BranchSide:      'lib/dp-packet.c:531,13'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ds_put_format
        - Branch String:   'lib/dp-packet.c:526,40'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:527,10'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ds_put_format
            - BranchSide:      'lib/dp-packet.c:531,13'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ds_put_format
        - Branch String:   'lib/dp-packet.c:527,36'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:528,10'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ds_put_format
            - BranchSide:      'lib/dp-packet.c:531,13'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ds_put_format
        - Branch String:   'lib/dp-packet.c:528,36'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:529,10'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ds_put_format
            - BranchSide:      'lib/dp-packet.c:531,13'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ds_put_format
        - Branch String:   'lib/dp-packet.c:529,48'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:530,10'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ds_put_format
            - BranchSide:      'lib/dp-packet.c:531,13'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ds_put_format
        - Branch String:   'lib/dp-packet.c:525,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:531,13'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ds_put_format
            - BranchSide:      'lib/dp-packet.c:548,5'
              BranchSideFuncs: []
        - Branch String:   'lib/dp-packet.c:531,13'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:532,27'
              BranchSideFuncs:
                - ds_put_format
                - ds_put_format
                - ds_put_format
            - BranchSide:      'lib/dp-packet.c:546,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/dp-packet.c:532,13'
          Dst:             ds_put_format
        - Src:             'lib/dp-packet.c:533,13'
          Dst:             ds_put_format
        - Src:             'lib/dp-packet.c:539,13'
          Dst:             ds_put_format
    - functionName:    dp_packet_resize_l2
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 515
      functionLinenumberEnd: 518
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - b
        - increment
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_adjust_layer_offset
        - dp_packet_data
        - dp_packet_resize_l2_5
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:516,5'
          Dst:             dp_packet_resize_l2_5
        - Src:             'lib/dp-packet.c:517,5'
          Dst:             dp_packet_adjust_layer_offset
        - Src:             'lib/dp-packet.c:518,12'
          Dst:             dp_packet_data
    - functionName:    dp_packet_resize_l2_5
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 507
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - b
        - increment
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_adjust_layer_offset
        - dp_packet_data
        - dp_packet_pull
        - dp_packet_push_uninit
      functionUses:    4
      BranchProfiles:
        - Branch String:   'lib/dp-packet.c:495,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:496,31'
              BranchSideFuncs:
                - dp_packet_push_uninit
                - dp_packet_adjust_layer_offset
                - dp_packet_adjust_layer_offset
                - dp_packet_adjust_layer_offset
                - dp_packet_adjust_layer_offset
                - dp_packet_data.5062
            - BranchSide:      'lib/dp-packet.c:498,24'
              BranchSideFuncs:
                - dp_packet_pull
                - dp_packet_adjust_layer_offset
                - dp_packet_adjust_layer_offset
                - dp_packet_adjust_layer_offset
                - dp_packet_adjust_layer_offset
                - dp_packet_data.5062
      Callsites:
        - Src:             'lib/dp-packet.c:496,9'
          Dst:             dp_packet_push_uninit
        - Src:             'lib/dp-packet.c:498,9'
          Dst:             dp_packet_pull
        - Src:             'lib/dp-packet.c:502,5'
          Dst:             dp_packet_adjust_layer_offset
        - Src:             'lib/dp-packet.c:503,5'
          Dst:             dp_packet_adjust_layer_offset
        - Src:             'lib/dp-packet.c:504,5'
          Dst:             dp_packet_adjust_layer_offset
        - Src:             'lib/dp-packet.c:505,5'
          Dst:             dp_packet_adjust_layer_offset
        - Src:             'lib/dp-packet.c:507,12'
          Dst:             dp_packet_data
    - functionName:    dp_packet_adjust_layer_offset
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 483
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - offset
        - increment
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:
        - Branch String:   'lib/dp-packet.c:484,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:484,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/dp-packet.c:485,20'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    dp_packet_push_uninit
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 433
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - size
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_data
        - dp_packet_prealloc_headroom
        - dp_packet_set_data
        - dp_packet_set_size
        - dp_packet_size
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:430,5'
          Dst:             dp_packet_prealloc_headroom
        - Src:             'lib/dp-packet.c:431,34'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.c:431,5'
          Dst:             dp_packet_set_data
        - Src:             'lib/dp-packet.c:432,27'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.c:432,5'
          Dst:             dp_packet_set_size
        - Src:             'lib/dp-packet.c:433,12'
          Dst:             dp_packet_data
    - functionName:    dp_packet_pull
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 374
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - size
      BBCount:         3
      ICount:          48
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_data
        - dp_packet_l2_pad_size
        - dp_packet_set_data
        - dp_packet_set_size
        - dp_packet_size
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:370,18'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.h:371,5'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.h:371,5'
          Dst:             dp_packet_l2_pad_size
        - Src:             'lib/dp-packet.h:372,36'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.h:372,5'
          Dst:             dp_packet_set_data
        - Src:             'lib/dp-packet.h:373,27'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.h:373,5'
          Dst:             dp_packet_set_size
    - functionName:    dp_packet_set_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 839
      functionLinenumberEnd: 845
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
        - data
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __packet_set_data
        - dp_packet_base
      functionUses:    8
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:840,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:841,27'
              BranchSideFuncs:
                - dp_packet_base.5064
                - __packet_set_data.5067
            - BranchSide:      'lib/dp-packet.h:843,27'
              BranchSideFuncs:
                - __packet_set_data.5067
      Callsites:
        - Src:             'lib/dp-packet.h:841,55'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.h:841,9'
          Dst:             __packet_set_data
        - Src:             'lib/dp-packet.h:843,9'
          Dst:             __packet_set_data
    - functionName:    dp_packet_set_size
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 755
      functionLinenumberEnd: 757
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - b
        - v
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_prealloc_headroom
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 316
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - size
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dp_packet_headroom
        - dp_packet_resize
        - dp_packet_tailroom
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/dp-packet.c:313,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:313,9'
              BranchSideFuncs:
                - dp_packet_tailroom
                - dp_packet_resize
            - BranchSide:      'lib/dp-packet.c:314,26'
              BranchSideFuncs:
                - dp_packet_tailroom
                - dp_packet_resize
        - Branch String:   'lib/dp-packet.c:314,29'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:314,63'
              BranchSideFuncs:
                - dp_packet_tailroom
                - dp_packet_resize
            - BranchSide:      'lib/dp-packet.c:314,63'
              BranchSideFuncs:
                - dp_packet_tailroom
                - dp_packet_resize
      Callsites:
        - Src:             'lib/dp-packet.c:313,16'
          Dst:             dp_packet_headroom
        - Src:             'lib/dp-packet.c:314,44'
          Dst:             dp_packet_tailroom
        - Src:             'lib/dp-packet.c:314,9'
          Dst:             dp_packet_resize
    - functionName:    dp_packet_headroom
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 344
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_base
        - dp_packet_data
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:344,21'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.h:344,50'
          Dst:             dp_packet_base
    - functionName:    dp_packet_tailroom
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_end
        - dp_packet_tail
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:352,21'
          Dst:             dp_packet_end
        - Src:             'lib/dp-packet.h:352,49'
          Dst:             dp_packet_tail
    - functionName:    dp_packet_resize
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 294
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - b
        - new_headroom
        - new_tailroom
      BBCount:         16
      ICount:          134
      EdgeCount:       29
      CyclomaticComplexity: 15
      functionsReached:
        - abort
        - dp_packet_base
        - dp_packet_copy__
        - dp_packet_data
        - dp_packet_headroom
        - dp_packet_set_allocated
        - dp_packet_set_base
        - dp_packet_set_data
        - dp_packet_size
        - xmalloc
        - xrealloc
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/dp-packet.c:257,5'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:259,9'
              BranchSideFuncs:
                - abort
            - BranchSide:      'lib/dp-packet.c:262,13'
              BranchSideFuncs:
                - dp_packet_headroom
                - xmalloc
                - dp_packet_copy__
                - dp_packet_base.5064
                - free
                - dp_packet_set_allocated
                - dp_packet_set_base
                - dp_packet_data.5062
                - dp_packet_set_data.5078
                - dp_packet_base.5064
                - xrealloc
            - BranchSide:      'lib/dp-packet.c:272,9'
              BranchSideFuncs:
                - abort
            - BranchSide:      'lib/dp-packet.c:275,9'
              BranchSideFuncs:
                - abort
            - BranchSide:      'lib/dp-packet.c:278,9'
              BranchSideFuncs:
                - xmalloc
                - dp_packet_copy__
                - dp_packet_set_allocated
                - dp_packet_set_base
                - dp_packet_data.5062
                - dp_packet_set_data.5078
            - BranchSide:      'lib/dp-packet.c:284,9'
              BranchSideFuncs:
                - abort
        - Branch String:   'lib/dp-packet.c:262,13'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:263,48'
              BranchSideFuncs:
                - dp_packet_base.5064
                - xrealloc
                - dp_packet_set_allocated
                - dp_packet_set_base
                - dp_packet_data.5062
                - dp_packet_set_data.5078
            - BranchSide:      'lib/dp-packet.c:265,32'
              BranchSideFuncs:
                - xmalloc
                - dp_packet_copy__
                - dp_packet_base.5064
                - free
                - dp_packet_set_allocated
                - dp_packet_set_base
                - dp_packet_data.5062
                - dp_packet_set_data.5078
        - Branch String:   'lib/dp-packet.c:291,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:291,9'
              BranchSideFuncs:
                - dp_packet_set_data.5078
            - BranchSide:      'lib/dp-packet.c:292,28'
              BranchSideFuncs:
                - dp_packet_set_data.5078
      Callsites:
        - Src:             'lib/dp-packet.c:255,36'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.c:259,9'
          Dst:             abort
        - Src:             'lib/dp-packet.c:262,29'
          Dst:             dp_packet_headroom
        - Src:             'lib/dp-packet.c:263,33'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.c:263,24'
          Dst:             xrealloc
        - Src:             'lib/dp-packet.c:265,24'
          Dst:             xmalloc
        - Src:             'lib/dp-packet.c:266,13'
          Dst:             dp_packet_copy__
        - Src:             'lib/dp-packet.c:267,18'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.c:272,9'
          Dst:             abort
        - Src:             'lib/dp-packet.c:275,9'
          Dst:             abort
        - Src:             'lib/dp-packet.c:279,20'
          Dst:             xmalloc
        - Src:             'lib/dp-packet.c:280,9'
          Dst:             dp_packet_copy__
        - Src:             'lib/dp-packet.c:284,9'
          Dst:             abort
        - Src:             'lib/dp-packet.c:287,5'
          Dst:             dp_packet_set_allocated
        - Src:             'lib/dp-packet.c:288,5'
          Dst:             dp_packet_set_base
        - Src:             'lib/dp-packet.c:291,9'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.c:292,9'
          Dst:             dp_packet_set_data
    - functionName:    dp_packet_copy__
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - b
        - new_base
        - new_headroom
        - new_tailroom
      BBCount:         9
      ICount:          94
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dp_packet_base
        - dp_packet_headroom
        - dp_packet_size
        - dp_packet_tailroom
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/dp-packet.c:239,28'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:239,12'
              BranchSideFuncs:
                - dp_packet_size.5065
            - BranchSide:      'lib/dp-packet.c:239,12'
              BranchSideFuncs:
                - dp_packet_size.5065
        - Branch String:   'lib/dp-packet.c:240,28'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:240,28'
              BranchSideFuncs:
                - dp_packet_size.5065
            - BranchSide:      'lib/dp-packet.c:240,28'
              BranchSideFuncs:
                - dp_packet_size.5065
      Callsites:
        - Src:             'lib/dp-packet.c:236,31'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.c:237,27'
          Dst:             dp_packet_headroom
        - Src:             'lib/dp-packet.c:238,27'
          Dst:             dp_packet_tailroom
        - Src:             'lib/dp-packet.c:244,28'
          Dst:             dp_packet_size
    - functionName:    dp_packet_set_base
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 743
      functionLinenumberEnd: 745
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
        - d
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_steal_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 463
      functionLinenumberEnd: 478
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         12
      ICount:          89
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - dp_packet_base
        - dp_packet_data
        - dp_packet_set_base
        - dp_packet_set_data
        - dp_packet_size
        - xmemdup
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/dp-packet.c:468,35'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:468,53'
              BranchSideFuncs:
                - dp_packet_data.5062
                - dp_packet_base.5064
                - dp_packet_data.5062
                - dp_packet_size.5065
                - xmemdup
                - dp_packet_set_base
                - dp_packet_set_data.5078
                - dp_packet_base.5064
                - free
                - dp_packet_data.5062
            - BranchSide:      'lib/dp-packet.c:471,36'
              BranchSideFuncs:
                - dp_packet_data.5062
                - dp_packet_size.5065
                - xmemdup
                - dp_packet_set_base
                - dp_packet_set_data.5078
                - dp_packet_base.5064
                - free
        - Branch String:   'lib/dp-packet.c:468,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:469,28'
              BranchSideFuncs:
                - dp_packet_data.5062
                - dp_packet_set_base
                - dp_packet_set_data.5078
            - BranchSide:      'lib/dp-packet.c:471,36'
              BranchSideFuncs:
                - dp_packet_data.5062
                - dp_packet_size.5065
                - xmemdup
                - dp_packet_set_base
                - dp_packet_set_data.5078
                - dp_packet_base.5064
                - free
      Callsites:
        - Src:             'lib/dp-packet.c:468,38'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.c:468,59'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.c:469,13'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.c:471,21'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.c:471,40'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.c:471,13'
          Dst:             xmemdup
        - Src:             'lib/dp-packet.c:473,18'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.c:476,5'
          Dst:             dp_packet_set_base
        - Src:             'lib/dp-packet.c:477,5'
          Dst:             dp_packet_set_data
    - functionName:    dp_packet_push
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 452
      functionLinenumberEnd: 455
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - p
        - size
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_push_uninit
        - nullable_memcpy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:453,17'
          Dst:             dp_packet_push_uninit
        - Src:             'lib/dp-packet.c:454,5'
          Dst:             nullable_memcpy
    - functionName:    nullable_memcpy
      functionSourceFile: '/src/openvswitch/lib/util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - dst
        - src
        - n
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/util.h:206,9'
          Branch Sides:
            - BranchSide:      'lib/util.h:206,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.h:207,16'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    dp_packet_push_zeros
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 441
      functionLinenumberEnd: 444
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - size
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_push_uninit
        - nullable_memset
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:442,17'
          Dst:             dp_packet_push_uninit
        - Src:             'lib/dp-packet.c:443,5'
          Dst:             nullable_memset
    - functionName:    nullable_memset
      functionSourceFile: '/src/openvswitch/lib/util.h'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - dst
        - c
        - n
      BBCount:         4
      ICount:          30
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/util.h:216,9'
          Branch Sides:
            - BranchSide:      'lib/util.h:216,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/util.h:217,16'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    dp_packet_reserve_with_tailroom
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 422
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - b
        - headroom
        - tailroom
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_data
        - dp_packet_prealloc_tailroom
        - dp_packet_set_data
        - dp_packet_size
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:419,5'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.c:420,5'
          Dst:             dp_packet_prealloc_tailroom
        - Src:             'lib/dp-packet.c:421,34'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.c:421,5'
          Dst:             dp_packet_set_data
    - functionName:    dp_packet_prealloc_tailroom
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - size
      BBCount:         15
      ICount:          70
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - dp_packet_base
        - dp_packet_headroom
        - dp_packet_resize
        - dp_packet_tailroom
      functionUses:    6
      BranchProfiles:
        - Branch String:   'lib/dp-packet.c:302,15'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:302,34'
              BranchSideFuncs:
                - dp_packet_base.5064
                - dp_packet_headroom
                - dp_packet_resize
                - dp_packet_tailroom
            - BranchSide:      'lib/dp-packet.c:302,42'
              BranchSideFuncs:
                - dp_packet_tailroom
                - dp_packet_headroom
                - dp_packet_resize
        - Branch String:   'lib/dp-packet.c:302,38'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:302,42'
              BranchSideFuncs:
                - dp_packet_tailroom
                - dp_packet_headroom
                - dp_packet_resize
            - BranchSide:      'lib/dp-packet.c:303,26'
              BranchSideFuncs:
                - dp_packet_headroom
                - dp_packet_resize
        - Branch String:   'lib/dp-packet.c:302,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:302,9'
              BranchSideFuncs:
                - dp_packet_headroom
                - dp_packet_resize
            - BranchSide:      'lib/dp-packet.c:303,26'
              BranchSideFuncs:
                - dp_packet_headroom
                - dp_packet_resize
        - Branch String:   'lib/dp-packet.c:303,52'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:303,9'
              BranchSideFuncs:
                - dp_packet_resize
            - BranchSide:      'lib/dp-packet.c:303,9'
              BranchSideFuncs:
                - dp_packet_resize
      Callsites:
        - Src:             'lib/dp-packet.c:302,19'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.c:302,49'
          Dst:             dp_packet_tailroom
        - Src:             'lib/dp-packet.c:303,29'
          Dst:             dp_packet_headroom
        - Src:             'lib/dp-packet.c:303,9'
          Dst:             dp_packet_resize
    - functionName:    dp_packet_put_hex
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 382
      functionLinenumberEnd: 398
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
        - s
        - n
      BBCount:         9
      ICount:          71
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dp_packet_put
        - dp_packet_size
        - hexits_value
        - strspn
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/dp-packet.c:390,13'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:391,17'
              BranchSideFuncs:
                - dp_packet_put
                - strspn
                - hexits_value
                - dp_packet_size.5065
            - BranchSide:      'lib/dp-packet.c:397,23'
              BranchSideFuncs:
                - dp_packet_put
                - strspn
                - hexits_value
                - dp_packet_size.5065
        - Branch String:   'lib/dp-packet.c:391,17'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:391,17'
              BranchSideFuncs:
                - dp_packet_size.5065
            - BranchSide:      'lib/dp-packet.c:392,37'
              BranchSideFuncs:
                - dp_packet_size.5065
      Callsites:
        - Src:             'lib/dp-packet.c:383,27'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.c:388,14'
          Dst:             strspn
        - Src:             'lib/dp-packet.c:389,16'
          Dst:             hexits_value
        - Src:             'lib/dp-packet.c:392,22'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.c:397,9'
          Dst:             dp_packet_put
    - functionName:    dp_packet_put
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - p
        - size
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_put_uninit
        - nullable_memcpy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:370,17'
          Dst:             dp_packet_put_uninit
        - Src:             'lib/dp-packet.c:371,5'
          Dst:             nullable_memcpy
    - functionName:    dp_packet_put_uninit
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 350
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - size
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_prealloc_tailroom
        - dp_packet_set_size
        - dp_packet_size
        - dp_packet_tail
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:347,5'
          Dst:             dp_packet_prealloc_tailroom
        - Src:             'lib/dp-packet.c:348,9'
          Dst:             dp_packet_tail
        - Src:             'lib/dp-packet.c:349,27'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.c:349,5'
          Dst:             dp_packet_set_size
    - functionName:    dp_packet_put_zeros
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 358
      functionLinenumberEnd: 361
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - size
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_put_uninit
        - nullable_memset
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:359,17'
          Dst:             dp_packet_put_uninit
        - Src:             'lib/dp-packet.c:360,5'
          Dst:             nullable_memset
    - functionName:    dp_packet_shift
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 324
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - b
        - delta
      BBCount:         12
      ICount:          89
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - dp_packet_data
        - dp_packet_headroom
        - dp_packet_set_data
        - dp_packet_size
        - dp_packet_tailroom
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/dp-packet.c:325,5'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:325,5'
              BranchSideFuncs:
                - dp_packet_tailroom
                - dp_packet_data.5062
                - dp_packet_size.5065
                - dp_packet_set_data.5078
            - BranchSide:      'lib/dp-packet.c:329,9'
              BranchSideFuncs:
                - dp_packet_tailroom
                - dp_packet_data.5062
                - dp_packet_size.5065
                - dp_packet_set_data.5078
        - Branch String:   'lib/dp-packet.c:325,5'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:329,9'
              BranchSideFuncs:
                - dp_packet_headroom
                - dp_packet_data.5062
                - dp_packet_size.5065
                - dp_packet_set_data.5078
            - BranchSide:      'lib/dp-packet.c:329,9'
              BranchSideFuncs:
                - dp_packet_data.5062
                - dp_packet_size.5065
                - dp_packet_set_data.5078
        - Branch String:   'lib/dp-packet.c:329,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:329,9'
              BranchSideFuncs:
                - dp_packet_data.5062
                - dp_packet_size.5065
                - dp_packet_set_data.5078
            - BranchSide:      'lib/dp-packet.c:330,46'
              BranchSideFuncs:
                - dp_packet_data.5062
                - dp_packet_size.5065
                - dp_packet_set_data.5078
      Callsites:
        - Src:             'lib/dp-packet.c:325,5'
          Dst:             dp_packet_tailroom
        - Src:             'lib/dp-packet.c:325,5'
          Dst:             dp_packet_headroom
        - Src:             'lib/dp-packet.c:330,31'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.c:335,31'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.c:336,9'
          Dst:             dp_packet_set_data
    - functionName:    dp_packet_clone_data
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - data
        - size
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_clone_data_with_headroom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:218,12'
          Dst:             dp_packet_clone_data_with_headroom
    - functionName:    dp_packet_clone_data_with_headroom
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - data
        - size
        - headroom
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_new_with_headroom
        - dp_packet_put
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:227,27'
          Dst:             dp_packet_new_with_headroom
        - Src:             'lib/dp-packet.c:228,5'
          Dst:             dp_packet_put
    - functionName:    dp_packet_new_with_headroom
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - size
        - headroom
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_new
        - dp_packet_reserve
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:165,27'
          Dst:             dp_packet_new
        - Src:             'lib/dp-packet.c:166,5'
          Dst:             dp_packet_reserve
    - functionName:    dp_packet_new
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - size
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_init
        - xmalloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:154,27'
          Dst:             xmalloc
        - Src:             'lib/dp-packet.c:156,5'
          Dst:             dp_packet_init
    - functionName:    dp_packet_reserve
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 406
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - size
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_data
        - dp_packet_prealloc_tailroom
        - dp_packet_set_data
        - dp_packet_size
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:407,5'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.c:408,5'
          Dst:             dp_packet_prealloc_tailroom
        - Src:             'lib/dp-packet.c:409,34'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.c:409,5'
          Dst:             dp_packet_set_data
    - functionName:    dp_packet_init
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - size
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_use
        - xmalloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/dp-packet.c:128,22'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:128,37'
              BranchSideFuncs:
                - xmalloc
                - dp_packet_use
            - BranchSide:      'lib/dp-packet.c:128,22'
              BranchSideFuncs:
                - dp_packet_use
      Callsites:
        - Src:             'lib/dp-packet.c:128,29'
          Dst:             xmalloc
        - Src:             'lib/dp-packet.c:128,5'
          Dst:             dp_packet_use
    - functionName:    dp_packet_use
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - base
        - allocated
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_use__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:62,5'
          Dst:             dp_packet_use__
    - functionName:    dp_packet_use__
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - char
      constantsTouched: []
      argNames:
        - b
        - base
        - allocated
        - source
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_init__
        - dp_packet_set_base
        - dp_packet_set_data
        - dp_packet_set_size
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:48,5'
          Dst:             dp_packet_set_base
        - Src:             'lib/dp-packet.c:49,5'
          Dst:             dp_packet_set_data
        - Src:             'lib/dp-packet.c:50,5'
          Dst:             dp_packet_set_size
        - Src:             'lib/dp-packet.c:52,5'
          Dst:             dp_packet_init__
    - functionName:    dp_packet_set_flow_mark
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1042
      functionLinenumberEnd: 1045
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - p
        - mark
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_flow_mark_ptr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:1043,6'
          Dst:             dp_packet_flow_mark_ptr
    - functionName:    dp_packet_has_flow_mark
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1031
      functionLinenumberEnd: 1038
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
        - mark
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - dp_packet_flow_mark_ptr
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/dp-packet.h:1032,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.h:1033,42'
              BranchSideFuncs:
                - dp_packet_flow_mark_ptr
            - BranchSide:      'lib/dp-packet.h:1037,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/dp-packet.h:1033,18'
          Dst:             dp_packet_flow_mark_ptr
    - functionName:    dp_packet_get_rss_hash
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1005
      functionLinenumberEnd: 1006
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_rss_ptr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:1006,13'
          Dst:             dp_packet_rss_ptr
    - functionName:    dp_packet_set_rss_hash
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1011
      functionLinenumberEnd: 1014
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - p
        - hash
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_rss_ptr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.h:1012,6'
          Dst:             dp_packet_rss_ptr
    - functionName:    dp_packet_rss_valid
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1018
      functionLinenumberEnd: 1019
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_get_tso_segsz
      functionSourceFile: '/src/openvswitch/lib/dp-packet.h'
      linkageType:     InternalLinkage
      functionLinenumber: 785
      functionLinenumberEnd: 786
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_clone_with_headroom
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - buffer
        - headroom
      BBCount:         9
      ICount:          73
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - dp_packet_clone_data_with_headroom
        - dp_packet_data
        - dp_packet_get_rss_hash
        - dp_packet_get_tso_segsz
        - dp_packet_has_flow_mark
        - dp_packet_rss_valid
        - dp_packet_set_flow_mark
        - dp_packet_set_rss_hash
        - dp_packet_set_tso_segsz
        - dp_packet_size
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/dp-packet.c:203,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:204,32'
              BranchSideFuncs:
                - dp_packet_get_rss_hash
                - dp_packet_set_rss_hash
                - dp_packet_has_flow_mark
                - dp_packet_set_flow_mark
            - BranchSide:      'lib/dp-packet.c:206,33'
              BranchSideFuncs:
                - dp_packet_has_flow_mark
                - dp_packet_set_flow_mark
        - Branch String:   'lib/dp-packet.c:206,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:206,9'
              BranchSideFuncs:
                - dp_packet_set_flow_mark
            - BranchSide:      'lib/dp-packet.c:207,33'
              BranchSideFuncs:
                - dp_packet_set_flow_mark
      Callsites:
        - Src:             'lib/dp-packet.c:186,27'
          Dst:             dp_packet_data
        - Src:             'lib/dp-packet.c:193,53'
          Dst:             dp_packet_size
        - Src:             'lib/dp-packet.c:192,18'
          Dst:             dp_packet_clone_data_with_headroom
        - Src:             'lib/dp-packet.c:201,41'
          Dst:             dp_packet_get_tso_segsz
        - Src:             'lib/dp-packet.c:201,5'
          Dst:             dp_packet_set_tso_segsz
        - Src:             'lib/dp-packet.c:203,9'
          Dst:             dp_packet_rss_valid
        - Src:             'lib/dp-packet.c:204,44'
          Dst:             dp_packet_get_rss_hash
        - Src:             'lib/dp-packet.c:204,9'
          Dst:             dp_packet_set_rss_hash
        - Src:             'lib/dp-packet.c:206,9'
          Dst:             dp_packet_has_flow_mark
        - Src:             'lib/dp-packet.c:207,9'
          Dst:             dp_packet_set_flow_mark
    - functionName:    dp_packet_clone
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - buffer
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_clone_with_headroom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:177,12'
          Dst:             dp_packet_clone_with_headroom
    - functionName:    free_afxdp_buf
      functionSourceFile: '/src/openvswitch/lib/netdev-afxdp.h'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    free_dpdk_buf
      functionSourceFile: '/src/openvswitch/lib/netdev-dpdk.h'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - buf
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_uninit
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         15
      ICount:          68
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - dp_packet_base
        - free_afxdp_buf
        - free_dpdk_buf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/dp-packet.c:135,9'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:135,9'
              BranchSideFuncs:
                - free_afxdp_buf.5096
                - free_dpdk_buf.5097
                - dp_packet_base.5064
                - free
            - BranchSide:      'lib/dp-packet.c:136,13'
              BranchSideFuncs:
                - free_afxdp_buf.5096
                - free_dpdk_buf.5097
                - dp_packet_base.5064
                - free
        - Branch String:   'lib/dp-packet.c:136,13'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:137,33'
              BranchSideFuncs:
                - dp_packet_base.5064
                - free
            - BranchSide:      'lib/dp-packet.c:138,20'
              BranchSideFuncs:
                - free_afxdp_buf.5096
                - free_dpdk_buf.5097
        - Branch String:   'lib/dp-packet.c:138,20'
          Branch Sides:
            - BranchSide:      'lib/dp-packet.c:139,27'
              BranchSideFuncs:
                - free_dpdk_buf.5097
            - BranchSide:      'lib/dp-packet.c:140,20'
              BranchSideFuncs:
                - free_afxdp_buf.5096
      Callsites:
        - Src:             'lib/dp-packet.c:137,18'
          Dst:             dp_packet_base
        - Src:             'lib/dp-packet.c:139,13'
          Dst:             free_dpdk_buf
        - Src:             'lib/dp-packet.c:141,13'
          Dst:             free_afxdp_buf
    - functionName:    dp_packet_init_dpdk
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - b
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dp_packet_use_const
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - data
        - size
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_set_size
        - dp_packet_use__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:111,5'
          Dst:             dp_packet_use__
        - Src:             'lib/dp-packet.c:112,5'
          Dst:             dp_packet_set_size
    - functionName:    dp_packet_use_stub
      functionSourceFile: '/src/openvswitch/lib/dp-packet.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - b
        - base
        - allocated
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - dp_packet_use__
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/dp-packet.c:98,5'
          Dst:             dp_packet_use__
    - functionName:    ovs_list_moved
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
        - orig
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_list_init
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/list.h:230,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/list.h:231,23'
              BranchSideFuncs:
                - ovs_list_init.5130
            - BranchSide:      './include/openvswitch/list.h:233,47'
              BranchSideFuncs: []
      Callsites:
        - Src:             './include/openvswitch/list.h:231,9'
          Dst:             ovs_list_init
    - functionName:    ovs_list_init
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - elem
      BBCount:         1
      ICount:          26
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_insert
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - before
        - elem
      BBCount:         1
      ICount:          30
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_move
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - dst
        - src
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_moved
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:244,5'
          Dst:             ovs_list_moved
    - functionName:    guarded_list_pop_all
      functionSourceFile: '/src/openvswitch/lib/guarded-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
        - elements
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_init
        - ovs_list_move
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/guarded-list.c:88,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/guarded-list.c:89,5'
          Dst:             ovs_list_move
        - Src:             'lib/guarded-list.c:92,5'
          Dst:             ovs_list_init
        - Src:             'lib/guarded-list.c:94,5'
          Dst:             ovs_mutex_unlock
    - functionName:    ovs_list_pop_front
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 261
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_remove
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:264,5'
          Dst:             ovs_list_remove
    - functionName:    guarded_list_pop_front
      functionSourceFile: '/src/openvswitch/lib/guarded-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_list_pop_front
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/guarded-list.c:74,9'
          Branch Sides:
            - BranchSide:      'lib/guarded-list.c:74,9'
              BranchSideFuncs:
                - ovs_list_pop_front.5136
                - ovs_mutex_unlock
            - BranchSide:      'lib/guarded-list.c:75,36'
              BranchSideFuncs:
                - ovs_list_pop_front.5136
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/guarded-list.c:73,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/guarded-list.c:75,16'
          Dst:             ovs_list_pop_front
        - Src:             'lib/guarded-list.c:78,5'
          Dst:             ovs_mutex_unlock
    - functionName:    ovs_list_push_back
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
        - elem
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:205,5'
          Dst:             ovs_list_insert
    - functionName:    guarded_list_push_back
      functionSourceFile: '/src/openvswitch/lib/guarded-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - list
        - node
        - max
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_list_push_back
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/guarded-list.c:59,9'
          Branch Sides:
            - BranchSide:      'lib/guarded-list.c:59,9'
              BranchSideFuncs:
                - ovs_list_push_back.5138
                - ovs_mutex_unlock
            - BranchSide:      'lib/guarded-list.c:60,29'
              BranchSideFuncs:
                - ovs_list_push_back.5138
                - ovs_mutex_unlock
      Callsites:
        - Src:             'lib/guarded-list.c:58,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/guarded-list.c:60,9'
          Dst:             ovs_list_push_back
        - Src:             'lib/guarded-list.c:63,5'
          Dst:             ovs_mutex_unlock
    - functionName:    guarded_list_is_empty
      functionSourceFile: '/src/openvswitch/lib/guarded-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/guarded-list.c:40,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/guarded-list.c:42,5'
          Dst:             ovs_mutex_unlock
    - functionName:    guarded_list_destroy
      functionSourceFile: '/src/openvswitch/lib/guarded-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_mutex_destroy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/guarded-list.c:32,5'
          Dst:             ovs_mutex_destroy
    - functionName:    guarded_list_init
      functionSourceFile: '/src/openvswitch/lib/guarded-list.c'
      linkageType:     InternalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 27
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_init
        - ovs_mutex_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/guarded-list.c:24,5'
          Dst:             ovs_mutex_init
        - Src:             'lib/guarded-list.c:25,5'
          Dst:             ovs_list_init
    - functionName:    init_this_module_lockfile
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 35
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/lockfile.c:35,1'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:35,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/lockfile.c:35,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/lockfile.c:35,1'
          Dst:             vlog_insert_module
    - functionName:    lockfile_lock_init_coverage
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/lockfile.c:37,1'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:37,1'
              BranchSideFuncs:
                - coverage_counter_register
            - BranchSide:      'lib/lockfile.c:37,1'
              BranchSideFuncs:
                - coverage_counter_register
      Callsites:
        - Src:             'lib/lockfile.c:37,1'
          Dst:             coverage_counter_register
    - functionName:    lockfile_error_init_coverage
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/lockfile.c:38,1'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:38,1'
              BranchSideFuncs:
                - coverage_counter_register
            - BranchSide:      'lib/lockfile.c:38,1'
              BranchSideFuncs:
                - coverage_counter_register
      Callsites:
        - Src:             'lib/lockfile.c:38,1'
          Dst:             coverage_counter_register
    - functionName:    lockfile_unlock_init_coverage
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/lockfile.c:39,1'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:39,1'
              BranchSideFuncs:
                - coverage_counter_register
            - BranchSide:      'lib/lockfile.c:39,1'
              BranchSideFuncs:
                - coverage_counter_register
      Callsites:
        - Src:             'lib/lockfile.c:39,1'
          Dst:             coverage_counter_register
    - functionName:    lockfile_unlock_count
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_lockfile_unlock_get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/lockfile.c:39,1'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:39,1'
              BranchSideFuncs:
                - counter_lockfile_unlock_get
            - BranchSide:      'lib/lockfile.c:39,1'
              BranchSideFuncs:
                - counter_lockfile_unlock_get
      Callsites:
        - Src:             'lib/lockfile.c:39,1'
          Dst:             counter_lockfile_unlock_get
    - functionName:    counter_lockfile_unlock_get
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_lockfile_unlock_get_unsafe
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/lockfile.c:39,1'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:39,1'
              BranchSideFuncs:
                - counter_lockfile_unlock_get_unsafe
            - BranchSide:      'lib/lockfile.c:39,1'
              BranchSideFuncs:
                - counter_lockfile_unlock_get_unsafe
      Callsites:
        - Src:             'lib/lockfile.c:39,1'
          Dst:             counter_lockfile_unlock_get_unsafe
    - functionName:    counter_lockfile_unlock_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lockfile_error_count
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_lockfile_error_get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/lockfile.c:38,1'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:38,1'
              BranchSideFuncs:
                - counter_lockfile_error_get
            - BranchSide:      'lib/lockfile.c:38,1'
              BranchSideFuncs:
                - counter_lockfile_error_get
      Callsites:
        - Src:             'lib/lockfile.c:38,1'
          Dst:             counter_lockfile_error_get
    - functionName:    counter_lockfile_error_get
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_lockfile_error_get_unsafe
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/lockfile.c:38,1'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:38,1'
              BranchSideFuncs:
                - counter_lockfile_error_get_unsafe
            - BranchSide:      'lib/lockfile.c:38,1'
              BranchSideFuncs:
                - counter_lockfile_error_get_unsafe
      Callsites:
        - Src:             'lib/lockfile.c:38,1'
          Dst:             counter_lockfile_error_get_unsafe
    - functionName:    counter_lockfile_error_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    lockfile_lock_count
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_lockfile_lock_get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/lockfile.c:37,1'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:37,1'
              BranchSideFuncs:
                - counter_lockfile_lock_get
            - BranchSide:      'lib/lockfile.c:37,1'
              BranchSideFuncs:
                - counter_lockfile_lock_get
      Callsites:
        - Src:             'lib/lockfile.c:37,1'
          Dst:             counter_lockfile_lock_get
    - functionName:    counter_lockfile_lock_get
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_lockfile_lock_get_unsafe
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/lockfile.c:37,1'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:37,1'
              BranchSideFuncs:
                - counter_lockfile_lock_get_unsafe
            - BranchSide:      'lib/lockfile.c:37,1'
              BranchSideFuncs:
                - counter_lockfile_lock_get_unsafe
      Callsites:
        - Src:             'lib/lockfile.c:37,1'
          Dst:             counter_lockfile_lock_get_unsafe
    - functionName:    counter_lockfile_lock_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_insert_fast
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - node
        - hash
      BBCount:         1
      ICount:          42
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    hmap_insert_at
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
        - hash
        - where
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_expand_at
        - hmap_insert_fast
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:308,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:308,9'
              BranchSideFuncs:
                - hmap_expand_at
            - BranchSide:      './include/openvswitch/hmap.h:309,24'
              BranchSideFuncs:
                - hmap_expand_at
      Callsites:
        - Src:             './include/openvswitch/hmap.h:307,5'
          Dst:             hmap_insert_fast
        - Src:             './include/openvswitch/hmap.h:309,9'
          Dst:             hmap_expand_at
    - functionName:    hmap_next_with_hash__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 352
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - node
        - hash
      BBCount:         7
      ICount:          42
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:349,25'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:349,28'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:349,5'
              BranchSideFuncs: []
        - Branch String:   './include/openvswitch/hmap.h:349,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:350,16'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:352,12'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    hmap_next_with_hash
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 395
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - node
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next_with_hash__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:396,12'
          Dst:             hmap_next_with_hash__
    - functionName:    lockfile_hash
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 185
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - device
        - inode
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hash_bytes
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:187,23'
          Dst:             hash_bytes
        - Src:             'lib/lockfile.c:186,12'
          Dst:             hash_bytes
    - functionName:    hmap_first_with_hash
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - hash
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next_with_hash__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:360,12'
          Dst:             hmap_next_with_hash__
    - functionName:    lockfile_register
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - int
      constantsTouched: []
      argNames:
        - name
        - device
        - inode
        - fd
      BBCount:         11
      ICount:          90
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - hmap_insert_at
        - lockfile_find
        - lockfile_hash
        - lockfile_unhash
        - vlog
        - xmalloc
        - xstrdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/lockfile.c:221,9'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:221,9'
              BranchSideFuncs:
                - lockfile_unhash
                - xmalloc
                - xstrdup
                - lockfile_hash
                - hmap_insert_at.5225
                - vlog
            - BranchSide:      'lib/lockfile.c:222,9'
              BranchSideFuncs:
                - lockfile_unhash
                - xmalloc
                - xstrdup
                - lockfile_hash
                - hmap_insert_at.5225
                - vlog
        - Branch String:   'lib/lockfile.c:222,9'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:222,9'
              BranchSideFuncs:
                - vlog
                - lockfile_unhash
                - xmalloc
                - xstrdup
                - lockfile_hash
                - hmap_insert_at.5225
            - BranchSide:      'lib/lockfile.c:223,25'
              BranchSideFuncs:
                - lockfile_unhash
                - xmalloc
                - xstrdup
                - lockfile_hash
                - hmap_insert_at.5225
      Callsites:
        - Src:             'lib/lockfile.c:220,16'
          Dst:             lockfile_find
        - Src:             'lib/lockfile.c:222,9'
          Dst:             vlog
        - Src:             'lib/lockfile.c:223,9'
          Dst:             lockfile_unhash
        - Src:             'lib/lockfile.c:226,16'
          Dst:             xmalloc
        - Src:             'lib/lockfile.c:227,22'
          Dst:             xstrdup
        - Src:             'lib/lockfile.c:231,5'
          Dst:             lockfile_hash
        - Src:             'lib/lockfile.c:231,5'
          Dst:             hmap_insert_at
    - functionName:    lockfile_find
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - device
        - inode
      BBCount:         16
      ICount:          90
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - hmap_first_with_hash
        - hmap_next_with_hash
        - lockfile_hash
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/lockfile.c:195,5'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:195,5'
              BranchSideFuncs:
                - hmap_next_with_hash.5227
            - BranchSide:      'lib/lockfile.c:195,5'
              BranchSideFuncs:
                - hmap_next_with_hash.5227
        - Branch String:   'lib/lockfile.c:195,5'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:197,13'
              BranchSideFuncs:
                - hmap_next_with_hash.5227
            - BranchSide:      'lib/lockfile.c:201,5'
              BranchSideFuncs: []
        - Branch String:   'lib/lockfile.c:197,40'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:197,43'
              BranchSideFuncs:
                - hmap_next_with_hash.5227
            - BranchSide:      'lib/lockfile.c:200,5'
              BranchSideFuncs:
                - hmap_next_with_hash.5227
        - Branch String:   'lib/lockfile.c:197,13'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:198,20'
              BranchSideFuncs: []
            - BranchSide:      'lib/lockfile.c:200,5'
              BranchSideFuncs:
                - hmap_next_with_hash.5227
      Callsites:
        - Src:             'lib/lockfile.c:195,5'
          Dst:             lockfile_hash
        - Src:             'lib/lockfile.c:195,5'
          Dst:             hmap_first_with_hash
        - Src:             'lib/lockfile.c:195,5'
          Dst:             hmap_next_with_hash
    - functionName:    lockfile_unhash
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lockfile
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - close
        - hmap_remove
      functionUses:    3
      BranchProfiles:
        - Branch String:   'lib/lockfile.c:207,9'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:207,9'
              BranchSideFuncs:
                - close
                - hmap_remove.5231
            - BranchSide:      'lib/lockfile.c:208,15'
              BranchSideFuncs:
                - close
                - hmap_remove.5231
      Callsites:
        - Src:             'lib/lockfile.c:208,9'
          Dst:             close
        - Src:             'lib/lockfile.c:210,9'
          Dst:             hmap_remove
    - functionName:    hmap_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 317
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
      BBCount:         4
      ICount:          51
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:319,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:320,21'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:322,15'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    hmap_next__
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 401
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hmap
        - start
      BBCount:         8
      ICount:          55
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:403,5'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:404,34'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:409,5'
              BranchSideFuncs: []
        - Branch String:   './include/openvswitch/hmap.h:405,13'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:406,20'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:408,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    hmap_next
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
        - node
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - hmap_next__
      functionUses:    1
      BranchProfiles:
        - Branch String:   './include/openvswitch/hmap.h:430,13'
          Branch Sides:
            - BranchSide:      './include/openvswitch/hmap.h:431,15'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/hmap.h:432,27'
              BranchSideFuncs:
                - hmap_next__.5232
      Callsites:
        - Src:             './include/openvswitch/hmap.h:432,15'
          Dst:             hmap_next__
    - functionName:    hmap_first
      functionSourceFile: '/src/openvswitch/./include/openvswitch/hmap.h'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 417
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hmap
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - hmap_next__
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/hmap.h:417,12'
          Dst:             hmap_next__
    - functionName:    lockfile_postfork
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 170
      functionLinenumberEnd: 181
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         18
      ICount:          89
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - hmap_first
        - hmap_next
        - lockfile_unhash
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - vlog
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/lockfile.c:173,5'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:171,22'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - hmap_first.5234
                - ovs_mutex_unlock
                - hmap_next.5233
                - lockfile_unhash
                - vlog
            - BranchSide:      'lib/lockfile.c:174,5'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - hmap_first.5234
                - ovs_mutex_unlock
                - hmap_next.5233
                - lockfile_unhash
                - vlog
        - Branch String:   'lib/lockfile.c:174,5'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:174,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - hmap_next.5233
                - lockfile_unhash
                - vlog
            - BranchSide:      'lib/lockfile.c:174,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
                - hmap_next.5233
                - lockfile_unhash
                - vlog
        - Branch String:   'lib/lockfile.c:174,5'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:175,13'
              BranchSideFuncs:
                - hmap_next.5233
                - ovs_mutex_unlock
                - lockfile_unhash
                - vlog
            - BranchSide:      'lib/lockfile.c:180,5'
              BranchSideFuncs:
                - ovs_mutex_unlock
        - Branch String:   'lib/lockfile.c:175,13'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:176,13'
              BranchSideFuncs:
                - lockfile_unhash
                - hmap_next.5233
                - ovs_mutex_unlock
                - vlog
            - BranchSide:      'lib/lockfile.c:179,5'
              BranchSideFuncs:
                - hmap_next.5233
                - ovs_mutex_unlock
                - lockfile_unhash
                - vlog
        - Branch String:   'lib/lockfile.c:176,13'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:176,13'
              BranchSideFuncs:
                - vlog
                - lockfile_unhash
                - hmap_next.5233
                - ovs_mutex_unlock
            - BranchSide:      'lib/lockfile.c:177,29'
              BranchSideFuncs:
                - lockfile_unhash
                - hmap_next.5233
                - ovs_mutex_unlock
                - vlog
      Callsites:
        - Src:             'lib/lockfile.c:173,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/lockfile.c:174,5'
          Dst:             hmap_first
        - Src:             'lib/lockfile.c:176,13'
          Dst:             vlog
        - Src:             'lib/lockfile.c:177,13'
          Dst:             lockfile_unhash
        - Src:             'lib/lockfile.c:174,5'
          Dst:             hmap_next
        - Src:             'lib/lockfile.c:180,5'
          Dst:             ovs_mutex_unlock
    - functionName:    lockfile_unlock_add
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 39
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - n
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_lockfile_unlock_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:39,1'
          Dst:             counter_lockfile_unlock_get
    - functionName:    lockfile_do_unlock
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lockfile
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - lockfile_unhash
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:304,5'
          Dst:             lockfile_unhash
    - functionName:    lockfile_unlock
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lockfile
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - lockfile_do_unlock
        - lockfile_unlock_add
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/lockfile.c:154,9'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:154,9'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - lockfile_do_unlock
                - ovs_mutex_unlock
                - lockfile_unlock_add
                - free
                - free
            - BranchSide:      'lib/lockfile.c:155,9'
              BranchSideFuncs:
                - ovs_mutex_lock_at
                - lockfile_do_unlock
                - ovs_mutex_unlock
                - lockfile_unlock_add
                - free
                - free
      Callsites:
        - Src:             'lib/lockfile.c:155,9'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/lockfile.c:156,9'
          Dst:             lockfile_do_unlock
        - Src:             'lib/lockfile.c:157,9'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/lockfile.c:159,9'
          Dst:             lockfile_unlock_add
    - functionName:    lockfile_error_add
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - n
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_lockfile_error_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:38,1'
          Dst:             counter_lockfile_error_get
    - functionName:    lockfile_try_lock
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - pidp
        - lockfilep
      BBCount:         41
      ICount:          250
      EdgeCount:       53
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - close
        - fcntl
        - fstat
        - getpid
        - lockfile_find
        - lockfile_register
        - open
        - ovs_strerror
        - stat
        - vlog
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/lockfile.c:320,9'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:321,29'
              BranchSideFuncs:
                - __errno_location
                - open
                - fstat
                - fcntl
                - lockfile_register
                - fcntl
                - close
                - __errno_location
                - close
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/lockfile.c:325,16'
              BranchSideFuncs:
                - __errno_location
                - open
                - fstat
                - fcntl
                - lockfile_register
                - fcntl
                - close
                - __errno_location
                - close
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/lockfile.c:321,13'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:322,21'
              BranchSideFuncs:
                - getpid
            - BranchSide:      'lib/lockfile.c:325,5'
              BranchSideFuncs:
                - open
                - fstat
                - fcntl
                - lockfile_register
                - fcntl
                - close
                - __errno_location
                - close
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/lockfile.c:325,16'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:0,0'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/lockfile.c:326,9'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/lockfile.c:326,9'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:326,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
            - BranchSide:      'lib/lockfile.c:328,16'
              BranchSideFuncs:
                - __errno_location
        - Branch String:   'lib/lockfile.c:333,9'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:334,9'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/lockfile.c:340,15'
              BranchSideFuncs:
                - fstat
                - fcntl
                - lockfile_register
                - fcntl
                - close
                - __errno_location
                - close
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/lockfile.c:334,9'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:334,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
            - BranchSide:      'lib/lockfile.c:336,16'
              BranchSideFuncs:
                - __errno_location
        - Branch String:   'lib/lockfile.c:340,9'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:341,9'
              BranchSideFuncs:
                - close
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/lockfile.c:348,5'
              BranchSideFuncs:
                - fcntl
                - lockfile_register
                - fcntl
                - close
                - __errno_location
        - Branch String:   'lib/lockfile.c:341,9'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:341,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
                - close
                - __errno_location
            - BranchSide:      'lib/lockfile.c:343,15'
              BranchSideFuncs:
                - close
                - __errno_location
        - Branch String:   'lib/lockfile.c:354,13'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:354,44'
              BranchSideFuncs:
                - __errno_location
                - lockfile_register
                - fcntl
                - close
            - BranchSide:      'lib/lockfile.c:354,11'
              BranchSideFuncs:
                - lockfile_register
                - fcntl
                - close
        - Branch String:   'lib/lockfile.c:356,9'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:357,40'
              BranchSideFuncs:
                - fcntl
                - close
            - BranchSide:      'lib/lockfile.c:359,20'
              BranchSideFuncs:
                - fcntl
                - close
        - Branch String:   'lib/lockfile.c:359,37'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:359,42'
              BranchSideFuncs:
                - close
            - BranchSide:      'lib/lockfile.c:362,15'
              BranchSideFuncs:
                - close
        - Branch String:   'lib/lockfile.c:359,13'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:360,23'
              BranchSideFuncs:
                - close
            - BranchSide:      'lib/lockfile.c:362,15'
              BranchSideFuncs:
                - close
      Callsites:
        - Src:             'lib/lockfile.c:320,10'
          Dst:             stat
        - Src:             'lib/lockfile.c:321,13'
          Dst:             lockfile_find
        - Src:             'lib/lockfile.c:322,21'
          Dst:             getpid
        - Src:             'lib/lockfile.c:325,16'
          Dst:             __errno_location
        - Src:             'lib/lockfile.c:326,9'
          Dst:             __errno_location
        - Src:             'lib/lockfile.c:326,9'
          Dst:             ovs_strerror
        - Src:             'lib/lockfile.c:326,9'
          Dst:             vlog
        - Src:             'lib/lockfile.c:328,16'
          Dst:             __errno_location
        - Src:             'lib/lockfile.c:332,10'
          Dst:             open
        - Src:             'lib/lockfile.c:334,9'
          Dst:             __errno_location
        - Src:             'lib/lockfile.c:334,9'
          Dst:             ovs_strerror
        - Src:             'lib/lockfile.c:334,9'
          Dst:             vlog
        - Src:             'lib/lockfile.c:336,16'
          Dst:             __errno_location
        - Src:             'lib/lockfile.c:340,9'
          Dst:             fstat
        - Src:             'lib/lockfile.c:341,9'
          Dst:             __errno_location
        - Src:             'lib/lockfile.c:341,9'
          Dst:             ovs_strerror
        - Src:             'lib/lockfile.c:341,9'
          Dst:             vlog
        - Src:             'lib/lockfile.c:343,9'
          Dst:             close
        - Src:             'lib/lockfile.c:344,16'
          Dst:             __errno_location
        - Src:             'lib/lockfile.c:354,13'
          Dst:             fcntl
        - Src:             'lib/lockfile.c:354,44'
          Dst:             __errno_location
        - Src:             'lib/lockfile.c:357,22'
          Dst:             lockfile_register
        - Src:             'lib/lockfile.c:359,14'
          Dst:             fcntl
        - Src:             'lib/lockfile.c:362,9'
          Dst:             close
    - functionName:    lockfile_lock_add
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - n
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_lockfile_lock_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/lockfile.c:37,1'
          Dst:             counter_lockfile_lock_get
    - functionName:    lockfile_lock
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - file
        - lockfilep
      BBCount:         30
      ICount:          148
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - getpid
        - lockfile_error_add
        - lockfile_lock_add
        - lockfile_name
        - lockfile_try_lock
        - ovs_mutex_lock_at
        - ovs_mutex_unlock
        - ovs_strerror
        - vlog
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/lockfile.c:128,9'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:128,9'
              BranchSideFuncs:
                - lockfile_error_add
                - getpid
                - free
                - ovs_strerror
                - vlog
                - vlog
                - vlog
            - BranchSide:      'lib/lockfile.c:129,9'
              BranchSideFuncs:
                - lockfile_error_add
                - getpid
                - free
                - ovs_strerror
                - vlog
                - vlog
                - vlog
        - Branch String:   'lib/lockfile.c:130,13'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:131,19'
              BranchSideFuncs:
                - getpid
                - free
                - ovs_strerror
                - vlog
                - vlog
                - vlog
            - BranchSide:      'lib/lockfile.c:133,13'
              BranchSideFuncs:
                - getpid
                - free
                - ovs_strerror
                - vlog
                - vlog
                - vlog
        - Branch String:   'lib/lockfile.c:133,13'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:134,13'
              BranchSideFuncs:
                - free
                - vlog
            - BranchSide:      'lib/lockfile.c:136,20'
              BranchSideFuncs:
                - free
                - ovs_strerror
                - vlog
                - vlog
        - Branch String:   'lib/lockfile.c:134,13'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:134,13'
              BranchSideFuncs:
                - vlog
                - free
            - BranchSide:      'lib/lockfile.c:136,9'
              BranchSideFuncs:
                - free
        - Branch String:   'lib/lockfile.c:136,20'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:137,13'
              BranchSideFuncs:
                - free
                - vlog
            - BranchSide:      'lib/lockfile.c:140,13'
              BranchSideFuncs:
                - free
                - ovs_strerror
                - vlog
        - Branch String:   'lib/lockfile.c:137,13'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:137,13'
              BranchSideFuncs:
                - vlog
                - free
            - BranchSide:      'lib/lockfile.c:139,9'
              BranchSideFuncs:
                - free
        - Branch String:   'lib/lockfile.c:140,13'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:0,0'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
                - free
            - BranchSide:      'lib/lockfile.c:140,13'
              BranchSideFuncs:
                - ovs_strerror
                - vlog
                - free
      Callsites:
        - Src:             'lib/lockfile.c:120,5'
          Dst:             lockfile_lock_add
        - Src:             'lib/lockfile.c:122,17'
          Dst:             lockfile_name
        - Src:             'lib/lockfile.c:124,5'
          Dst:             ovs_mutex_lock_at
        - Src:             'lib/lockfile.c:125,13'
          Dst:             lockfile_try_lock
        - Src:             'lib/lockfile.c:126,5'
          Dst:             ovs_mutex_unlock
        - Src:             'lib/lockfile.c:129,9'
          Dst:             lockfile_error_add
        - Src:             'lib/lockfile.c:133,20'
          Dst:             getpid
        - Src:             'lib/lockfile.c:134,13'
          Dst:             vlog
        - Src:             'lib/lockfile.c:137,13'
          Dst:             vlog
        - Src:             'lib/lockfile.c:140,13'
          Dst:             ovs_strerror
        - Src:             'lib/lockfile.c:140,13'
          Dst:             vlog
    - functionName:    lockfile_name
      functionSourceFile: '/src/openvswitch/lib/lockfile.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - filename_
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - follow_symlinks
        - strrchr
        - xasprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/lockfile.c:93,17'
          Branch Sides:
            - BranchSide:      'lib/lockfile.c:95,36'
              BranchSideFuncs:
                - xasprintf
                - free
            - BranchSide:      'lib/lockfile.c:96,43'
              BranchSideFuncs:
                - xasprintf
                - free
      Callsites:
        - Src:             'lib/lockfile.c:83,16'
          Dst:             follow_symlinks
        - Src:             'lib/lockfile.c:84,13'
          Dst:             strrchr
        - Src:             'lib/lockfile.c:94,19'
          Dst:             xasprintf
        - Src:             'lib/lockfile.c:96,19'
          Dst:             xasprintf
    - functionName:    init_this_module_process
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - vlog_insert_module
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/process.c:40,1'
          Branch Sides:
            - BranchSide:      'lib/process.c:40,1'
              BranchSideFuncs:
                - vlog_insert_module
            - BranchSide:      'lib/process.c:40,1'
              BranchSideFuncs:
                - vlog_insert_module
      Callsites:
        - Src:             'lib/process.c:40,1'
          Dst:             vlog_insert_module
    - functionName:    process_start_init_coverage
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - coverage_counter_register
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/process.c:42,1'
          Branch Sides:
            - BranchSide:      'lib/process.c:42,1'
              BranchSideFuncs:
                - coverage_counter_register
            - BranchSide:      'lib/process.c:42,1'
              BranchSideFuncs:
                - coverage_counter_register
      Callsites:
        - Src:             'lib/process.c:42,1'
          Dst:             coverage_counter_register
    - functionName:    process_start_count
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_process_start_get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/process.c:42,1'
          Branch Sides:
            - BranchSide:      'lib/process.c:42,1'
              BranchSideFuncs:
                - counter_process_start_get
            - BranchSide:      'lib/process.c:42,1'
              BranchSideFuncs:
                - counter_process_start_get
      Callsites:
        - Src:             'lib/process.c:42,1'
          Dst:             counter_process_start_get
    - functionName:    counter_process_start_get
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_process_start_get_unsafe
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/process.c:42,1'
          Branch Sides:
            - BranchSide:      'lib/process.c:42,1'
              BranchSideFuncs:
                - counter_process_start_get_unsafe
            - BranchSide:      'lib/process.c:42,1'
              BranchSideFuncs:
                - counter_process_start_get_unsafe
      Callsites:
        - Src:             'lib/process.c:42,1'
          Dst:             counter_process_start_get_unsafe
    - functionName:    counter_process_start_get_unsafe
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          5
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ticks_to_ms
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 388
      functionLinenumberEnd: 396
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ticks
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rlim_is_finite
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - limit
      BBCount:         8
      ICount:          41
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/process.c:191,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:192,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/process.c:196,9'
              BranchSideFuncs: []
        - Branch String:   'lib/process.c:196,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:197,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/process.c:202,9'
              BranchSideFuncs: []
        - Branch String:   'lib/process.c:202,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:203,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/process.c:207,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ovs_list_insert
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - before
        - elem
      BBCount:         1
      ICount:          30
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_push_back
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
        - elem
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ovs_list_insert
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './include/openvswitch/list.h:205,5'
          Dst:             ovs_list_insert
    - functionName:    process_search_path
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 604
      functionLinenumberEnd: 625
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
      BBCount:         18
      ICount:          103
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - getenv
        - stat
        - strchr
        - strtok_r
        - xasprintf
        - xstrdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/process.c:609,27'
          Branch Sides:
            - BranchSide:      'lib/process.c:609,31'
              BranchSideFuncs:
                - stat
                - xstrdup
            - BranchSide:      'lib/process.c:610,21'
              BranchSideFuncs:
                - stat
                - xstrdup
        - Branch String:   'lib/process.c:609,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:610,21'
              BranchSideFuncs:
                - getenv
                - xstrdup
                - strtok_r
                - free
                - xasprintf
                - stat
                - free
                - strtok_r
                - free
            - BranchSide:      'lib/process.c:613,20'
              BranchSideFuncs:
                - getenv
                - xstrdup
                - strtok_r
                - free
                - xasprintf
                - stat
                - free
                - strtok_r
                - free
        - Branch String:   'lib/process.c:610,16'
          Branch Sides:
            - BranchSide:      'lib/process.c:610,46'
              BranchSideFuncs:
                - xstrdup
            - BranchSide:      'lib/process.c:610,9'
              BranchSideFuncs: []
        - Branch String:   'lib/process.c:614,5'
          Branch Sides:
            - BranchSide:      'lib/process.c:616,41'
              BranchSideFuncs:
                - xasprintf
                - stat
                - free
                - strtok_r
                - free
                - free
            - BranchSide:      'lib/process.c:623,10'
              BranchSideFuncs:
                - free
        - Branch String:   'lib/process.c:617,13'
          Branch Sides:
            - BranchSide:      'lib/process.c:618,18'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/process.c:621,14'
              BranchSideFuncs:
                - free
                - strtok_r
                - free
                - xasprintf
                - stat
                - free
      Callsites:
        - Src:             'lib/process.c:609,9'
          Dst:             strchr
        - Src:             'lib/process.c:609,31'
          Dst:             getenv
        - Src:             'lib/process.c:610,16'
          Dst:             stat
        - Src:             'lib/process.c:610,38'
          Dst:             xstrdup
        - Src:             'lib/process.c:613,20'
          Dst:             getenv
        - Src:             'lib/process.c:613,12'
          Dst:             xstrdup
        - Src:             'lib/process.c:614,16'
          Dst:             strtok_r
        - Src:             'lib/process.c:616,22'
          Dst:             xasprintf
        - Src:             'lib/process.c:617,13'
          Dst:             stat
        - Src:             'lib/process.c:615,16'
          Dst:             strtok_r
    - functionName:    process_wait
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 590
      functionLinenumberEnd: 600
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - poll_fd_wait_at
        - poll_immediate_wake_at
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/process.c:592,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:593,9'
              BranchSideFuncs:
                - poll_immediate_wake_at
            - BranchSide:      'lib/process.c:595,9'
              BranchSideFuncs:
                - poll_fd_wait_at
      Callsites:
        - Src:             'lib/process.c:593,9'
          Dst:             poll_immediate_wake_at
        - Src:             'lib/process.c:595,9'
          Dst:             poll_fd_wait_at
    - functionName:    ovs_list_is_empty
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    process_run
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 559
      functionLinenumberEnd: 584
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         36
      ICount:          171
      EdgeCount:       46
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - ovs_list_is_empty
        - ovs_strerror
        - read
        - vlog
        - waitpid
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/process.c:563,10'
          Branch Sides:
            - BranchSide:      'lib/process.c:561,10'
              BranchSideFuncs:
                - ovs_list_is_empty.5332
                - read
                - waitpid
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
            - BranchSide:      'lib/process.c:563,10'
              BranchSideFuncs:
                - ovs_list_is_empty.5332
                - read
                - waitpid
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
        - Branch String:   'lib/process.c:563,44'
          Branch Sides:
            - BranchSide:      'lib/process.c:563,44'
              BranchSideFuncs: []
            - BranchSide:      'lib/process.c:563,52'
              BranchSideFuncs:
                - read
                - waitpid
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
        - Branch String:   'lib/process.c:563,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:563,9'
              BranchSideFuncs:
                - waitpid
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
            - BranchSide:      'lib/process.c:566,9'
              BranchSideFuncs:
                - waitpid
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
        - Branch String:   'lib/process.c:566,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:566,9'
              BranchSideFuncs:
                - waitpid
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
            - BranchSide:      'lib/process.c:566,9'
              BranchSideFuncs:
                - waitpid
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
        - Branch String:   'lib/process.c:566,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:567,18'
              BranchSideFuncs:
                - waitpid
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
            - BranchSide:      'lib/process.c:582,5'
              BranchSideFuncs: []
        - Branch String:   'lib/process.c:567,17'
          Branch Sides:
            - BranchSide:      'lib/process.c:569,17'
              BranchSideFuncs:
                - waitpid
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
            - BranchSide:      'lib/process.c:581,9'
              BranchSideFuncs:
                - waitpid
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
        - Branch String:   'lib/process.c:571,39'
          Branch Sides:
            - BranchSide:      'lib/process.c:571,42'
              BranchSideFuncs:
                - __errno_location
                - waitpid
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/process.c:571,17'
              BranchSideFuncs:
                - waitpid
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/process.c:571,17'
          Branch Sides:
            - BranchSide:      'lib/process.c:570,38'
              BranchSideFuncs:
                - waitpid
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
            - BranchSide:      'lib/process.c:572,21'
              BranchSideFuncs:
                - waitpid
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/process.c:572,21'
          Branch Sides:
            - BranchSide:      'lib/process.c:573,21'
              BranchSideFuncs:
                - waitpid
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
            - BranchSide:      'lib/process.c:575,28'
              BranchSideFuncs:
                - waitpid
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/process.c:576,21'
          Branch Sides:
            - BranchSide:      'lib/process.c:576,21'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
                - waitpid
                - __errno_location
            - BranchSide:      'lib/process.c:577,21'
              BranchSideFuncs:
                - waitpid
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
      Callsites:
        - Src:             'lib/process.c:563,10'
          Dst:             ovs_list_is_empty
        - Src:             'lib/process.c:563,47'
          Dst:             read
        - Src:             'lib/process.c:570,30'
          Dst:             waitpid
        - Src:             'lib/process.c:571,42'
          Dst:             __errno_location
        - Src:             'lib/process.c:576,21'
          Dst:             __errno_location
        - Src:             'lib/process.c:576,21'
          Dst:             ovs_strerror
        - Src:             'lib/process.c:576,21'
          Dst:             vlog
    - functionName:    process_status_msg
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 529
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - status
      BBCount:         15
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - ds_cstr
        - ds_put_cstr
        - ds_put_format
        - signal_name
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/process.c:532,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:533,46'
              BranchSideFuncs:
                - ds_put_format
                - ds_cstr
                - ds_put_cstr
            - BranchSide:      'lib/process.c:534,16'
              BranchSideFuncs:
                - ds_put_format
                - ds_cstr
                - ds_put_cstr
                - signal_name
                - ds_put_format
                - signal_name
                - ds_put_format
        - Branch String:   'lib/process.c:534,16'
          Branch Sides:
            - BranchSide:      'lib/process.c:538,35'
              BranchSideFuncs:
                - signal_name
                - ds_put_format
                - ds_cstr
                - ds_put_cstr
            - BranchSide:      'lib/process.c:539,16'
              BranchSideFuncs:
                - ds_put_format
                - ds_cstr
                - ds_put_cstr
                - signal_name
                - ds_put_format
        - Branch String:   'lib/process.c:539,16'
          Branch Sides:
            - BranchSide:      'lib/process.c:543,35'
              BranchSideFuncs:
                - signal_name
                - ds_put_format
                - ds_cstr
                - ds_put_cstr
            - BranchSide:      'lib/process.c:545,58'
              BranchSideFuncs:
                - ds_put_format
                - ds_cstr
                - ds_put_cstr
        - Branch String:   'lib/process.c:547,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:547,9'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_cstr
            - BranchSide:      'lib/process.c:548,9'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_cstr
      Callsites:
        - Src:             'lib/process.c:533,9'
          Dst:             ds_put_format
        - Src:             'lib/process.c:538,23'
          Dst:             signal_name
        - Src:             'lib/process.c:537,9'
          Dst:             ds_put_format
        - Src:             'lib/process.c:543,23'
          Dst:             signal_name
        - Src:             'lib/process.c:542,9'
          Dst:             ds_put_format
        - Src:             'lib/process.c:545,9'
          Dst:             ds_put_format
        - Src:             'lib/process.c:548,9'
          Dst:             ds_put_cstr
        - Src:             'lib/process.c:553,12'
          Dst:             ds_cstr
    - functionName:    get_raw_process_info
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 405
      functionLinenumberEnd: 489
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - pid
        - raw
      BBCount:         18
      ICount:          147
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - __isoc99_fscanf
        - fclose
        - fopen
        - get_boot_time
        - get_page_size
        - ovs_strerror
        - ovsthread_once_done
        - ovsthread_once_start
        - sprintf
        - ticks_to_ms
        - time_wall_msec
        - vlog
      functionUses:    2
      BranchProfiles:
        - Branch String:   'lib/process.c:417,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:418,9'
              BranchSideFuncs:
                - __isoc99_fscanf
                - fclose
                - get_boot_time
                - ticks_to_ms
                - get_page_size
                - time_wall_msec
                - ticks_to_ms
                - ovsthread_once_start.5343
                - vlog
                - ovsthread_once_done
            - BranchSide:      'lib/process.c:423,16'
              BranchSideFuncs:
                - __isoc99_fscanf
                - fclose
                - get_boot_time
                - ticks_to_ms
                - get_page_size
                - time_wall_msec
                - ticks_to_ms
                - ovsthread_once_start.5343
                - vlog
                - ovsthread_once_done
        - Branch String:   'lib/process.c:418,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:418,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
                - ovsthread_once_done
            - BranchSide:      'lib/process.c:420,9'
              BranchSideFuncs: []
        - Branch String:   'lib/process.c:475,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:476,9'
              BranchSideFuncs:
                - ovsthread_once_start.5343
                - vlog
                - ovsthread_once_done
            - BranchSide:      'lib/process.c:480,18'
              BranchSideFuncs:
                - get_boot_time
                - ticks_to_ms
                - get_page_size
                - time_wall_msec
                - ticks_to_ms
        - Branch String:   'lib/process.c:476,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:476,9'
              BranchSideFuncs:
                - vlog
                - ovsthread_once_done
            - BranchSide:      'lib/process.c:477,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/process.c:415,5'
          Dst:             sprintf
        - Src:             'lib/process.c:416,14'
          Dst:             fopen
        - Src:             'lib/process.c:418,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/process.c:418,9'
          Dst:             __errno_location
        - Src:             'lib/process.c:418,9'
          Dst:             ovs_strerror
        - Src:             'lib/process.c:418,9'
          Dst:             vlog
        - Src:             'lib/process.c:418,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/process.c:423,9'
          Dst:             __isoc99_fscanf
        - Src:             'lib/process.c:474,5'
          Dst:             fclose
        - Src:             'lib/process.c:476,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/process.c:476,9'
          Dst:             vlog
        - Src:             'lib/process.c:476,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/process.c:480,18'
          Dst:             get_boot_time
        - Src:             'lib/process.c:480,36'
          Dst:             ticks_to_ms
        - Src:             'lib/process.c:483,23'
          Dst:             get_page_size
        - Src:             'lib/process.c:484,19'
          Dst:             time_wall_msec
        - Src:             'lib/process.c:485,20'
          Dst:             ticks_to_ms
    - functionName:    ovsthread_once_start
      functionSourceFile: '/src/openvswitch/./include/openvswitch/thread.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - once
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovsthread_once_start__
      functionUses:    4
      BranchProfiles:
        - Branch String:   './include/openvswitch/thread.h:161,12'
          Branch Sides:
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/thread.h:161,12'
              BranchSideFuncs:
                - ovsthread_once_start__
      Callsites:
        - Src:             './include/openvswitch/thread.h:161,12'
          Dst:             ovsthread_once_start__
    - functionName:    __isoc99_fscanf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_process_info
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 493
      functionLinenumberEnd: 521
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - pid
        - pinfo
      BBCount:         12
      ICount:          112
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - count_crashes
        - get_raw_process_info
        - ovs_strlcpy
        - strcmp
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/process.c:497,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:498,9'
              BranchSideFuncs:
                - ovs_strlcpy
                - get_raw_process_info
                - strcmp
                - count_crashes
            - BranchSide:      'lib/process.c:501,17'
              BranchSideFuncs:
                - ovs_strlcpy
                - get_raw_process_info
                - strcmp
                - count_crashes
        - Branch String:   'lib/process.c:510,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:513,36'
              BranchSideFuncs:
                - get_raw_process_info
                - strcmp
                - count_crashes
            - BranchSide:      'lib/process.c:520,5'
              BranchSideFuncs: []
        - Branch String:   'lib/process.c:514,13'
          Branch Sides:
            - BranchSide:      'lib/process.c:515,36'
              BranchSideFuncs: []
            - BranchSide:      'lib/process.c:518,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/process.c:497,10'
          Dst:             get_raw_process_info
        - Src:             'lib/process.c:501,5'
          Dst:             ovs_strlcpy
        - Src:             'lib/process.c:513,9'
          Dst:             get_raw_process_info
        - Src:             'lib/process.c:514,14'
          Dst:             strcmp
        - Src:             'lib/process.c:516,30'
          Dst:             count_crashes
    - functionName:    count_crashes
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 350
      functionLinenumberEnd: 383
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - pid
      BBCount:         28
      ICount:          129
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - fclose
        - feof
        - fgets
        - fopen
        - ovs_scan
        - ovs_strerror
        - ovsthread_once_done
        - ovsthread_once_start
        - sprintf
        - strchr
        - vlog
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/process.c:361,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:362,9'
              BranchSideFuncs:
                - fgets
                - ovsthread_once_start.5343
                - fclose
                - feof
                - __errno_location
                - ovs_strerror
                - vlog
                - ovsthread_once_done
                - strchr
                - ovs_scan
            - BranchSide:      'lib/process.c:366,16'
              BranchSideFuncs:
                - fgets
                - ovsthread_once_start.5343
                - fclose
                - feof
                - __errno_location
                - ovs_strerror
                - vlog
                - ovsthread_once_done
                - strchr
                - ovs_scan
        - Branch String:   'lib/process.c:362,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:362,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
                - ovsthread_once_done
            - BranchSide:      'lib/process.c:363,9'
              BranchSideFuncs: []
        - Branch String:   'lib/process.c:366,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:367,9'
              BranchSideFuncs:
                - strchr
                - fclose
                - ovs_scan
            - BranchSide:      'lib/process.c:372,20'
              BranchSideFuncs:
                - strchr
                - fclose
                - ovs_scan
        - Branch String:   'lib/process.c:367,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:367,9'
              BranchSideFuncs:
                - feof
                - __errno_location
                - ovs_strerror
                - vlog
                - ovsthread_once_done
                - fclose
            - BranchSide:      'lib/process.c:369,9'
              BranchSideFuncs:
                - fclose
        - Branch String:   'lib/process.c:367,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:367,9'
              BranchSideFuncs:
                - vlog
                - ovsthread_once_done
                - fclose
            - BranchSide:      'lib/process.c:367,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
                - ovsthread_once_done
                - fclose
        - Branch String:   'lib/process.c:373,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:373,9'
              BranchSideFuncs:
                - ovs_scan
                - fclose
            - BranchSide:      'lib/process.c:375,22'
              BranchSideFuncs:
                - ovs_scan
                - fclose
        - Branch String:   'lib/process.c:375,13'
          Branch Sides:
            - BranchSide:      'lib/process.c:376,23'
              BranchSideFuncs:
                - fclose
            - BranchSide:      'lib/process.c:378,5'
              BranchSideFuncs:
                - fclose
      Callsites:
        - Src:             'lib/process.c:359,5'
          Dst:             sprintf
        - Src:             'lib/process.c:360,14'
          Dst:             fopen
        - Src:             'lib/process.c:362,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/process.c:362,9'
          Dst:             __errno_location
        - Src:             'lib/process.c:362,9'
          Dst:             ovs_strerror
        - Src:             'lib/process.c:362,9'
          Dst:             vlog
        - Src:             'lib/process.c:362,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/process.c:366,10'
          Dst:             fgets
        - Src:             'lib/process.c:367,9'
          Dst:             ovsthread_once_start
        - Src:             'lib/process.c:367,9'
          Dst:             feof
        - Src:             'lib/process.c:367,9'
          Dst:             __errno_location
        - Src:             'lib/process.c:367,9'
          Dst:             ovs_strerror
        - Src:             'lib/process.c:367,9'
          Dst:             vlog
        - Src:             'lib/process.c:367,9'
          Dst:             ovsthread_once_done
        - Src:             'lib/process.c:372,13'
          Dst:             strchr
        - Src:             'lib/process.c:375,13'
          Dst:             ovs_scan
        - Src:             'lib/process.c:381,5'
          Dst:             fclose
    - functionName:    feof
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    process_status
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    process_exited
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 334
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    process_name
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 328
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    process_pid
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 320
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    process_kill
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - p
        - signr
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - kill
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/process.c:308,13'
          Branch Sides:
            - BranchSide:      'lib/process.c:308,13'
              BranchSideFuncs: []
            - BranchSide:      'lib/process.c:309,21'
              BranchSideFuncs:
                - kill
                - __errno_location
        - Branch String:   'lib/process.c:309,15'
          Branch Sides:
            - BranchSide:      'lib/process.c:308,13'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'lib/process.c:310,15'
              BranchSideFuncs:
                - __errno_location
      Callsites:
        - Src:             'lib/process.c:309,16'
          Dst:             kill
        - Src:             'lib/process.c:310,15'
          Dst:             __errno_location
    - functionName:    kill
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ovs_list_remove
      functionSourceFile: '/src/openvswitch/./include/openvswitch/list.h'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - elem
      BBCount:         1
      ICount:          26
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    process_destroy
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_list_remove
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/process.c:295,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:295,9'
              BranchSideFuncs:
                - ovs_list_remove.5352
                - free
                - free
            - BranchSide:      'lib/process.c:296,26'
              BranchSideFuncs:
                - ovs_list_remove.5352
                - free
                - free
      Callsites:
        - Src:             'lib/process.c:296,9'
          Dst:             ovs_list_remove
    - functionName:    get_max_fds
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         17
      ICount:          72
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - getrlimit
        - rlim_is_finite
        - vlog
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/process.c:216,10'
          Branch Sides:
            - BranchSide:      'lib/process.c:216,10'
              BranchSideFuncs:
                - getrlimit
                - rlim_is_finite
                - vlog
            - BranchSide:      'lib/process.c:216,10'
              BranchSideFuncs:
                - getrlimit
                - rlim_is_finite
                - vlog
        - Branch String:   'lib/process.c:216,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:216,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/process.c:218,14'
              BranchSideFuncs:
                - getrlimit
                - rlim_is_finite
                - vlog
        - Branch String:   'lib/process.c:218,43'
          Branch Sides:
            - BranchSide:      'lib/process.c:218,63'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/process.c:221,13'
              BranchSideFuncs:
                - vlog
        - Branch String:   'lib/process.c:218,13'
          Branch Sides:
            - BranchSide:      'lib/process.c:219,25'
              BranchSideFuncs: []
            - BranchSide:      'lib/process.c:221,13'
              BranchSideFuncs:
                - vlog
        - Branch String:   'lib/process.c:221,13'
          Branch Sides:
            - BranchSide:      'lib/process.c:221,13'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/process.c:222,21'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/process.c:218,14'
          Dst:             getrlimit
        - Src:             'lib/process.c:218,46'
          Dst:             rlim_is_finite
        - Src:             'lib/process.c:221,13'
          Dst:             vlog
    - functionName:    getrlimit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    process_register
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - name
        - pid
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ovs_list_push_back
        - strrchr
        - xstrdup
        - xzalloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/process.c:179,23'
          Branch Sides:
            - BranchSide:      'lib/process.c:179,31'
              BranchSideFuncs:
                - xstrdup
                - ovs_list_push_back.5326
            - BranchSide:      'lib/process.c:179,43'
              BranchSideFuncs:
                - xstrdup
                - ovs_list_push_back.5326
      Callsites:
        - Src:             'lib/process.c:176,9'
          Dst:             xzalloc
        - Src:             'lib/process.c:178,13'
          Dst:             strrchr
        - Src:             'lib/process.c:179,15'
          Dst:             xstrdup
        - Src:             'lib/process.c:182,5'
          Dst:             ovs_list_push_back
    - functionName:    process_prestart
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - argv
      BBCount:         19
      ICount:          100
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - process_escape_args
        - process_init
        - process_search_path
        - vlog
        - vlog_is_enabled
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/process.c:150,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:151,42'
              BranchSideFuncs:
                - process_escape_args
                - free
                - process_search_path
                - vlog
                - free
                - vlog
            - BranchSide:      'lib/process.c:158,34'
              BranchSideFuncs:
                - process_search_path
                - vlog
                - free
        - Branch String:   'lib/process.c:152,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:152,9'
              BranchSideFuncs:
                - vlog
                - free
                - process_search_path
                - vlog
                - free
            - BranchSide:      'lib/process.c:153,14'
              BranchSideFuncs:
                - free
                - process_search_path
                - vlog
                - free
        - Branch String:   'lib/process.c:159,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:160,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'lib/process.c:163,10'
              BranchSideFuncs:
                - free
        - Branch String:   'lib/process.c:160,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:160,9'
              BranchSideFuncs:
                - vlog
            - BranchSide:      'lib/process.c:161,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'lib/process.c:147,5'
          Dst:             process_init
        - Src:             'lib/process.c:150,9'
          Dst:             vlog_is_enabled
        - Src:             'lib/process.c:151,22'
          Dst:             process_escape_args
        - Src:             'lib/process.c:152,9'
          Dst:             vlog
        - Src:             'lib/process.c:158,14'
          Dst:             process_search_path
        - Src:             'lib/process.c:160,9'
          Dst:             vlog
    - functionName:    process_init
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - assert_single_threaded_at
        - sigemptyset
        - xpipe_nonblocking
        - xsigaction
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/process.c:94,5'
          Branch Sides:
            - BranchSide:      'lib/process.c:92,22'
              BranchSideFuncs:
                - assert_single_threaded_at
                - xpipe_nonblocking
                - sigemptyset
                - xsigaction
            - BranchSide:      'lib/process.c:94,5'
              BranchSideFuncs:
                - assert_single_threaded_at
                - xpipe_nonblocking
                - sigemptyset
                - xsigaction
        - Branch String:   'lib/process.c:95,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:96,9'
              BranchSideFuncs: []
            - BranchSide:      'lib/process.c:98,12'
              BranchSideFuncs:
                - xpipe_nonblocking
                - sigemptyset
                - xsigaction
      Callsites:
        - Src:             'lib/process.c:94,5'
          Dst:             assert_single_threaded_at
        - Src:             'lib/process.c:101,5'
          Dst:             xpipe_nonblocking
        - Src:             'lib/process.c:106,5'
          Dst:             sigemptyset
        - Src:             'lib/process.c:108,5'
          Dst:             xsigaction
    - functionName:    process_escape_args
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - argv
      BBCount:         23
      ICount:          123
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - ds_cstr
        - ds_put_char
        - ds_put_cstr
        - strcspn
      functionUses:    1
      BranchProfiles:
        - Branch String:   'lib/process.c:117,5'
          Branch Sides:
            - BranchSide:      'lib/process.c:118,28'
              BranchSideFuncs:
                - strcspn
                - ds_put_cstr
                - ds_cstr
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_put_char.5356
            - BranchSide:      'lib/process.c:136,12'
              BranchSideFuncs:
                - ds_cstr
        - Branch String:   'lib/process.c:120,13'
          Branch Sides:
            - BranchSide:      'lib/process.c:121,13'
              BranchSideFuncs:
                - ds_put_char.5356
                - strcspn
                - ds_put_cstr
                - ds_cstr
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_put_char.5356
            - BranchSide:      'lib/process.c:123,13'
              BranchSideFuncs:
                - strcspn
                - ds_put_cstr
                - ds_cstr
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_put_char.5356
        - Branch String:   'lib/process.c:123,13'
          Branch Sides:
            - BranchSide:      'lib/process.c:124,13'
              BranchSideFuncs:
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_cstr
                - strcspn
                - ds_put_cstr
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_put_char.5356
            - BranchSide:      'lib/process.c:133,30'
              BranchSideFuncs:
                - ds_put_cstr
                - ds_cstr
                - strcspn
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_put_char.5356
        - Branch String:   'lib/process.c:125,13'
          Branch Sides:
            - BranchSide:      'lib/process.c:126,22'
              BranchSideFuncs:
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_cstr
                - strcspn
                - ds_put_cstr
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_put_char.5356
            - BranchSide:      'lib/process.c:131,13'
              BranchSideFuncs:
                - ds_put_char.5356
                - ds_cstr
                - strcspn
                - ds_put_cstr
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_put_char.5356
        - Branch String:   'lib/process.c:126,32'
          Branch Sides:
            - BranchSide:      'lib/process.c:126,36'
              BranchSideFuncs:
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_cstr
                - strcspn
                - ds_put_cstr
                - ds_put_char.5356
                - ds_put_char.5356
            - BranchSide:      'lib/process.c:127,21'
              BranchSideFuncs:
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_cstr
                - strcspn
                - ds_put_cstr
                - ds_put_char.5356
                - ds_put_char.5356
        - Branch String:   'lib/process.c:126,21'
          Branch Sides:
            - BranchSide:      'lib/process.c:127,21'
              BranchSideFuncs:
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_cstr
                - strcspn
                - ds_put_cstr
                - ds_put_char.5356
                - ds_put_char.5356
            - BranchSide:      'lib/process.c:129,35'
              BranchSideFuncs:
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_cstr
                - strcspn
                - ds_put_cstr
                - ds_put_char.5356
                - ds_put_char.5356
                - ds_put_char.5356
      Callsites:
        - Src:             'lib/process.c:121,13'
          Dst:             ds_put_char
        - Src:             'lib/process.c:123,17'
          Dst:             strcspn
        - Src:             'lib/process.c:124,13'
          Dst:             ds_put_char
        - Src:             'lib/process.c:127,21'
          Dst:             ds_put_char
        - Src:             'lib/process.c:129,17'
          Dst:             ds_put_char
        - Src:             'lib/process.c:131,13'
          Dst:             ds_put_char
        - Src:             'lib/process.c:133,13'
          Dst:             ds_put_cstr
        - Src:             'lib/process.c:136,12'
          Dst:             ds_cstr
    - functionName:    ds_put_char
      functionSourceFile: '/src/openvswitch/./include/openvswitch/dynamic-string.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ds
        - c
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ds_put_char__
      functionUses:    5
      BranchProfiles:
        - Branch String:   './include/openvswitch/dynamic-string.h:95,9'
          Branch Sides:
            - BranchSide:      './include/openvswitch/dynamic-string.h:96,36'
              BranchSideFuncs: []
            - BranchSide:      './include/openvswitch/dynamic-string.h:99,23'
              BranchSideFuncs:
                - ds_put_char__
      Callsites:
        - Src:             './include/openvswitch/dynamic-string.h:99,9'
          Dst:             ds_put_char__
    - functionName:    sigchld_handler
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 629
      functionLinenumberEnd: 631
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - signr
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ignore
        - write
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:630,12'
          Dst:             write
        - Src:             'lib/process.c:630,5'
          Dst:             ignore
    - functionName:    process_start_add
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - n
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - counter_process_start_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'lib/process.c:42,1'
          Dst:             counter_process_start_get
    - functionName:    process_start
      functionSourceFile: '/src/openvswitch/lib/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 289
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - argv
        - pp
      BBCount:         21
      ICount:          143
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - _exit
        - assert_single_threaded_at
        - close
        - execvp
        - fatal_signal_block
        - fatal_signal_fork
        - fork
        - fprintf
        - get_max_fds
        - ovs_strerror
        - process_prestart
        - process_register
        - process_start_add
        - vlog
        - xpthread_sigmask
      functionUses:    0
      BranchProfiles:
        - Branch String:   'lib/process.c:255,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:256,16'
              BranchSideFuncs: []
            - BranchSide:      'lib/process.c:259,5'
              BranchSideFuncs:
                - fatal_signal_block
                - fork
                - get_max_fds
                - fatal_signal_fork
                - xpthread_sigmask
                - execvp
                - __errno_location
                - ovs_strerror
                - fprintf
                - _exit
                - close
                - process_register
                - xpthread_sigmask
                - __errno_location
                - __errno_location
                - ovs_strerror
                - vlog
        - Branch String:   'lib/process.c:261,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:262,9'
              BranchSideFuncs:
                - __errno_location
                - xpthread_sigmask
                - __errno_location
                - ovs_strerror
                - vlog
            - BranchSide:      'lib/process.c:264,16'
              BranchSideFuncs:
                - get_max_fds
                - fatal_signal_fork
                - xpthread_sigmask
                - execvp
                - __errno_location
                - ovs_strerror
                - fprintf
                - _exit
                - close
                - process_register
                - xpthread_sigmask
        - Branch String:   'lib/process.c:262,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:262,9'
              BranchSideFuncs:
                - __errno_location
                - ovs_strerror
                - vlog
                - __errno_location
                - xpthread_sigmask
            - BranchSide:      'lib/process.c:263,17'
              BranchSideFuncs:
                - __errno_location
                - xpthread_sigmask
        - Branch String:   'lib/process.c:264,16'
          Branch Sides:
            - BranchSide:      'lib/process.c:266,32'
              BranchSideFuncs:
                - process_register
                - xpthread_sigmask
            - BranchSide:      'lib/process.c:270,22'
              BranchSideFuncs:
                - get_max_fds
                - fatal_signal_fork
                - xpthread_sigmask
                - execvp
                - __errno_location
                - ovs_strerror
                - fprintf
                - _exit
                - close
        - Branch String:   'lib/process.c:274,9'
          Branch Sides:
            - BranchSide:      'lib/process.c:275,19'
              BranchSideFuncs:
                - close
                - xpthread_sigmask
                - execvp
                - __errno_location
                - ovs_strerror
                - fprintf
                - _exit
            - BranchSide:      'lib/process.c:277,9'
              BranchSideFuncs:
                - xpthread_sigmask
                - execvp
                - __errno_location
                - ovs_strerror
                - fprintf
                - _exit
      Callsites:
        - Src:             'lib/process.c:250,5'
          Dst:             assert_single_threaded_at
        - Src:             'lib/process.c:253,5'
          Dst:             process_start_add
        - Src:             'lib/process.c:254,13'
          Dst:             process_prestart
        - Src:             'lib/process.c:259,5'
          Dst:             fatal_signal_block
        - Src:             'lib/process.c:260,11'
          Dst:             fork
        - Src:             'lib/process.c:262,9'
          Dst:             __errno_location
        - Src:             'lib/process.c:262,9'
          Dst:             ovs_strerror
        - Src:             'lib/process.c:262,9'
          Dst:             vlog
        - Src:             'lib/process.c:263,17'
          Dst:             __errno_location
        - Src:             'lib/process.c:266,15'
          Dst:             process_register
        - Src:             'lib/process.c:270,22'
          Dst:             get_max_fds
        - Src:             'lib/process.c:273,9'
          Dst:             fatal_signal_fork
        - Src:             'lib/process.c:275,13'
          Dst:             close
        - Src:             'lib/process.c:277,9'
          Dst:             xpthread_sigmask
        - Src:             'lib/process.c:278,9'
          Dst:             execvp
        - Src:             'lib/process.c:280,39'
          Dst:             __errno_location
        - Src:             'lib/process.c:280,26'
          Dst:             ovs_strerror
        - Src:             'lib/process.c:279,9'
          Dst:             fprintf
        - Src:             'lib/process.c:281,9'
          Dst:             _exit
        - Src:             'lib/process.c:283,5'
          Dst:             xpthread_sigmask
    - functionName:    execvp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _exit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
...
